Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#20

Re: Kurze Dateinamen anlegen

  Alt 24. Jan 2009, 20:03
Delphi-Quellcode:
Function SetFileShortNameA(hFile: THandle; ShortName: PAnsiChar): LongBool; StdCall;
  External 'kernel32.dllName 'SetFileShortNameA';

Var H: THandle;
  D: WIN32_FIND_DATAa;

Begin
  H := FindFirstFileA('Neu Textdokument.txt', D);
  If H = INVALID_HANDLE_VALUE Then Exit;
  Inc(D.cAlternateFileName[7]); // NEUTEX~1.TXT > NEUTEX~2.TXT
  Windows.FindClose(H);

  H := CreateFileA(D.cFileName, GENERIC_All, FILE_SHARE_WRITE, nil,
    OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
  If H = INVALID_HANDLE_VALUE Then Exit;
  If not SetFileShortNameA(H, @D.cAlternateFileName) Then
    ShowMessage(SysErrorMessage(GetLastError));
  CloseHandle(H);
End;
FILE_ATTRIBUTE_NORMAL wird nur verwendet (muß es aber nicht ... einfach nur 0 geht auch), wenn sonst kein anderes Attribut gesetzt ist.
Und dann werden Attribute (Bits) per OR verknüpft.
$2B or not $2B
  Mit Zitat antworten Zitat