Lange und kurze Dateinamen


Wie Konvertieren von Pfaden der vollständige Dateiname. Kurze Dateinamen in lange Dateinamen, lange Dateinamen auf kurze Dateinamen und Mince Dateinamen umgewandelt.
Wenn ein Dateiname entfällt in einem Formular oder eine Befehlszeile enthält eine
Dateiname der OS nutzt das Format kurze Dateinamen (8.3).
Der Hauptgrund ist, dass ein kurzer Dateinamenformat nicht aufnehmen kann eine
Raum-Charta. Dies klappt schön da die Raum-Charta ist
als Datei Trennzeichen verwendet.
Die folgenden drei Funktionen hilft Ihnen konvertieren zwischen den
Kurze und lange Dateinamen. Ich habe die Mince Filename-Funktion
Hilfe Zeige einen vollständigen Dateinamen, einschließlich des Pfads.

{===================================================}
Funktion ShortFileName (Const FileName: String): String;
{===================================================}
Var
aTmp: Array [0..255] Of Char;
BEGIN
Wenn nicht dann FileExists(FileName)
BEGIN
Ergebnis: = '';
Ende
Sonst
BEGIN
Wenn GetShortPathName (PChar (FileName), aTmp, Sizeof (aTmp) - 1) = 0 Then
BEGIN
Ergebnis: = Dateiname;
Ende
Sonst
BEGIN
Ergebnis: = StrPas (aTmp);
Ende;
Ende;
Ende;
{==============================================}
Funktion LongFileName(ShortName: String): String;
{==============================================}
Var
SR: TSearchRec;
BEGIN
Ergebnis: = '';
Wenn (pos ('\\ ', ShortName) + pos ('* ', ShortName) +
POS ('? ', ShortName) <>-0) oder nicht FileExists(ShortName) dann
BEGIN
{ignorieren Sie NetBIOS Name, Joker-Zeichen und ungültige Dateinamen}
Ausfahrt;
Ende;
Während FindFirst (ShortName, FaAnyFile, SR) = 0 zu tun
BEGIN
{nächste Teil als Präfix}
Ergebnis: = ' \' + SR. Name + Ergebnis;
SysUtils.FindClose(SR); {die SysUtils, nicht die WinProcs-Prozedur!}
{Verzeichnis oben (vor der ' \')}
ShortName: = ExtractFileDir (ShortName);
Wenn Länge (ShortName) < = 2 Then

BEGIN
Zu brechen; {ShortName enthält Laufwerkbuchstaben gefolgt von ':'}
Ende;
Ende;
Ergebnis: = ExtractFileDrive (ShortName) + Ergebnis;
Ende;
{=========================================================}
Hackfleisch-Funktion (PathToMince: String; InSpace: Integer): String;
{=========================================================}
'C:\Program Files\Delphi\DDrop\TargetDemo\main.pas'
'C:\Program Files\.. \main.pas'
Var
SL: TStringList;
sHelp, sFile: String;
iPos: Integer;
BEGIN
sHelp: = PathToMince;
iPos: Pos = ('\ ', sHelp);
Wenn iPos = 0 Then
BEGIN
Ergebnis: = PathToMince;
Ende
Sonst
BEGIN
SL: = TStringList.Create;
Zeichenfolge dekodieren
Während iPos <> 0 tun
BEGIN
SL. Fügen Sie hinzu (Kopie (sHelp, 1, (iPos - 1)));
sHelp: = Kopieren (sHelp, (iPos + 1), Length(sHelp));
iPos: Pos = ('\ ', sHelp);
Ende;
Wenn sHelp <> '' dann
BEGIN
SL. Add(sHelp);
Ende;
Zeichenfolge codiert
sFile: = sl [sl. Count - 1];
SL. Löschen Sie (sl. Count - 1);
Ergebnis: = '';
Während (Länge (Ergebnis + sFile) < InSpace) und (sl. Count <> 0)
BEGIN
Ergebnis: = Ergebnis + sl [0] + ' \';
SL. Delete(0);
Ende;
Wenn sl. Count = 0 Then
BEGIN
Ergebnis: = Ergebnis + sFile;
Ende
Sonst
BEGIN
Ergebnis: = Ergebnis + '... \' + sFile;
Ende;
SL. Frei;
Ende;
Ende;

Fazit:
Funktion wie ShortFileName, LongFileName und Mince groß sind
Helfer in einer RAD-Umgebung.









Lange und kurze Dateinamen


Lange und kurze Dateinamen : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Wie Konvertieren von Pfaden der vollständige Dateiname. Kurze Dateinamen in lange Dateinamen, lange Dateinamen auf kurze Dateinamen und Mince Dateinamen umgewandelt.
Wenn ein Dateiname entfällt in einem Formular oder eine Befehlszeile enthält eine
Dateiname der OS nutzt das Format kurze Dateinamen (8.3).
Der Hauptgrund ist, dass ein kurzer Dateinamenformat nicht aufnehmen kann eine
Raum-Charta. Dies klappt schön da die Raum-Charta ist
als Datei Trennzeichen verwendet.
Die folgenden drei Funktionen hilft Ihnen konvertieren zwischen den
Kurze und lange Dateinamen. Ich habe die Mince Filename-Funktion
Hilfe Zeige einen vollständigen Dateinamen, einschließlich des Pfads.

{===================================================}
Funktion ShortFileName (Const FileName: String): String;
{===================================================}
Var
aTmp: Array [0..255] Of Char;
BEGIN
Wenn nicht dann FileExists(FileName)
BEGIN
Ergebnis: = '';
Ende
Sonst
BEGIN
Wenn GetShortPathName (PChar (FileName), aTmp, Sizeof (aTmp) - 1) = 0 Then
BEGIN
Ergebnis: = Dateiname;
Ende
Sonst
BEGIN
Ergebnis: = StrPas (aTmp);
Ende;
Ende;
Ende;
{==============================================}
Funktion LongFileName(ShortName: String): String;
{==============================================}
Var
SR: TSearchRec;
BEGIN
Ergebnis: = '';
Wenn (pos ('\\ ', ShortName) + pos ('* ', ShortName) +
POS ('? ', ShortName) <>-0) oder nicht FileExists(ShortName) dann
BEGIN
{ignorieren Sie NetBIOS Name, Joker-Zeichen und ungültige Dateinamen}
Ausfahrt;
Ende;
Während FindFirst (ShortName, FaAnyFile, SR) = 0 zu tun
BEGIN
{nächste Teil als Präfix}
Ergebnis: = ' \' + SR. Name + Ergebnis;
SysUtils.FindClose(SR); {die SysUtils, nicht die WinProcs-Prozedur!}
{Verzeichnis oben (vor der ' \')}
ShortName: = ExtractFileDir (ShortName);
Wenn Länge (ShortName) < = 2 Then

BEGIN
Zu brechen; {ShortName enthält Laufwerkbuchstaben gefolgt von ':'}
Ende;
Ende;
Ergebnis: = ExtractFileDrive (ShortName) + Ergebnis;
Ende;
{=========================================================}
Hackfleisch-Funktion (PathToMince: String; InSpace: Integer): String;
{=========================================================}
'C:\Program Files\Delphi\DDrop\TargetDemo\main.pas'
'C:\Program Files\.. \main.pas'
Var
SL: TStringList;
sHelp, sFile: String;
iPos: Integer;
BEGIN
sHelp: = PathToMince;
iPos: Pos = ('\ ', sHelp);
Wenn iPos = 0 Then
BEGIN
Ergebnis: = PathToMince;
Ende
Sonst
BEGIN
SL: = TStringList.Create;
Zeichenfolge dekodieren
Während iPos <> 0 tun
BEGIN
SL. Fügen Sie hinzu (Kopie (sHelp, 1, (iPos - 1)));
sHelp: = Kopieren (sHelp, (iPos + 1), Length(sHelp));
iPos: Pos = ('\ ', sHelp);
Ende;
Wenn sHelp <> '' dann
BEGIN
SL. Add(sHelp);
Ende;
Zeichenfolge codiert
sFile: = sl [sl. Count - 1];
SL. Löschen Sie (sl. Count - 1);
Ergebnis: = '';
Während (Länge (Ergebnis + sFile) < InSpace) und (sl. Count <> 0)
BEGIN
Ergebnis: = Ergebnis + sl [0] + ' \';
SL. Delete(0);
Ende;
Wenn sl. Count = 0 Then
BEGIN
Ergebnis: = Ergebnis + sFile;
Ende
Sonst
BEGIN
Ergebnis: = Ergebnis + '... \' + sFile;
Ende;
SL. Frei;
Ende;
Ende;

Fazit:
Funktion wie ShortFileName, LongFileName und Mince groß sind
Helfer in einer RAD-Umgebung.


Lange und kurze Dateinamen

Lange und kurze Dateinamen : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Lange und kurze Dateinamen
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung