Nur das mit dem FILE_ATTRIBUTE_DIRECTORY-Bit mußt'e noch reparieren.
FileAttributes = FILE_ATTRIBUTE_DIRECTORY
liefert ja nur True, wenn sonst keine anderen Attribute gesetzt sind
und is_File würde auch True sagen,
wenn die Datei/Verzeichnis nicht existiert oder wenn das "Verzeichnis" noch weitere Attribute besitzt.
Delphi-Quellcode:
is_File := (FileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0) and (FileAttributes <> $FFFFFFFF);
is_Dir := (FileAttributes and FILE_ATTRIBUTE_DIRECTORY <> 0) and (FileAttributes <> $FFFFFFFF);
// gekürzt, da FILE_ATTRIBUTE_DIRECTORY in INVALID_FILE_ATTRIBUTES enthalten ist
is_File := FileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0;
is_Dir := (FileAttributes and FILE_ATTRIBUTE_DIRECTORY <> 0) and (FileAttributes <> $FFFFFFFF);