Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi SHGetFileInfo Dateiattribute ermitteln funktioniert nicht (https://www.delphipraxis.net/108198-shgetfileinfo-dateiattribute-ermitteln-funktioniert-nicht.html)

hitzi 8. Feb 2008 17:13


SHGetFileInfo Dateiattribute ermitteln funktioniert nicht
 
Hallo,

ich hole mir einige Daten zu Verzeichnissen und Dateien über die folgende Funktion:
Delphi-Quellcode:
  if SHGetFileInfo(PChar(Path), 0, fileInfo, sizeof(FileInfo), SHGFI_ICON or SHGFI_SMALLICON or SHGFI_DISPLAYNAME or SHGFI_TYPENAME or SHGFI_ATTRIBUTES) <> 0 then begin
    Description := FileInfo.szDisplayName;
    TypeName := fileInfo.szTypeName;
    isHidden := (fileInfo.dwAttributes and SFGAO_HIDDEN) = SFGAO_HIDDEN;
    isSystem := (fileInfo.dwAttributes and SFGAO_FILESYSANCESTOR) = SFGAO_FILESYSANCESTOR;
  end;
Das Problem ist nun aber, dass isHidden und isSystem auch bei versteckten Dateien oder Systemdateien auf False bleibt. Dagegen funktioniert dieser Test bei Verzeichnissen einwandfrei.

Wieso ist das so?


Viele Grüße

marabu 8. Feb 2008 19:17

Re: SHGetFileInfo Dateiattribute ermitteln funktioniert nich
 
Hallo Thomas,

die Abfrage von SFGAO_HIDDEN ist in Ordnung und funktioniert nachweislich auch. Wenn ich die mir vorliegende Dokumentation zu SFGAO_FILESYSANCESTOR richtig interpretiere, dann hat das nichts mit dem File Attribute "System" zu tun und bezieht sich auch nur auf Folder. Das Attribute SYSTEM kannst du dir mit GetFileAttributes() besorgen. Bei den Shell-Funktionen habe ich auf die Schnelle nichts vergleichbares gesehen.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz