![]() |
Alternative zur Funktion FileGetAttr?
Hallo Leute,
ich verwende die Funktion FileGetAttr um (wie soll es sonst sein) die Attribute einer Datei zu ermitteln. Der Code ist einfach:
Delphi-Quellcode:
Das funktioniert auch wunderbar. Leider erhalte ich beim Kompilieren immer folgende Meldung:
Value := FileGetAttr(AFileName);
Result := Value <> -1; if not Result then Exit; FReadyOnly := (Value and faReadOnly) = faReadOnly; FArchive := (Value and faArchive) = faArchive; FHidden := (Value and faHidden) = faHidden; FSystem := (Value and faSysFile) = faSysFile; FNormal := (Value and faNormal) = faNormal; FTemporary := (Value and faTemporary) = faTemporary; Zitat:
Verwendet Ihr auch diese Funktion oder gibt es eine Alternative bei der die Meldung nicht erscheint? Oder soll ich einfach die Meldung mittels Compiler-Schalter unterdrücken?
Delphi-Quellcode:
Wie handhabt Ihr das?
{$WARNINGS OFF}
Value := FileGetAttr(AFileName); {$WARNINGS ON} Außerdem liefert die Funktion nur ein paar von vielen Datei-Attributen. Wie kann man die anderen ermitteln? Schöne Grüße und vielen Dank, Andreas |
AW: Alternative zur Funktion FileGetAttr?
Dafür gibt es in der Unit System.IOUtils entsprechende plattformunabhängige Methoden. In diesem Fall:
![]() |
AW: Alternative zur Funktion FileGetAttr?
Zitat:
|
AW: Alternative zur Funktion FileGetAttr?
Hallo,
schreib dir deine eigene Methode als Wrapper, also in etwa so:
Delphi-Quellcode:
Somit musst das Warning (heisst das nicht sogar PLATFORM ?)
function MyFileGetAttr(AFileName ...);
begin {$WARNINGS OFF} Result:= FileGetAttr(AFileName); {$WARNINGS ON} nicht an tausend Stellen machen und musst beim Umstieg auf eine neuere Version nur eine Stelle ändern. Wenn du unter Windows bleibst, könntest die die Plattform-Warnungen natürlich auch global ausschalten. |
AW: Alternative zur Funktion FileGetAttr?
Zitat:
Hier die anderen Werte aus Delphi Tokyo:
Delphi-Quellcode:
FILE_SHARE_READ = $00000001;
{$EXTERNALSYM FILE_SHARE_READ} FILE_SHARE_WRITE = $00000002; {$EXTERNALSYM FILE_SHARE_WRITE} FILE_SHARE_DELETE = $00000004; {$EXTERNALSYM FILE_SHARE_DELETE} FILE_ATTRIBUTE_READONLY = $00000001; {$EXTERNALSYM FILE_ATTRIBUTE_READONLY} FILE_ATTRIBUTE_HIDDEN = $00000002; {$EXTERNALSYM FILE_ATTRIBUTE_HIDDEN} FILE_ATTRIBUTE_SYSTEM = $00000004; {$EXTERNALSYM FILE_ATTRIBUTE_SYSTEM} FILE_ATTRIBUTE_DIRECTORY = $00000010; {$EXTERNALSYM FILE_ATTRIBUTE_DIRECTORY} FILE_ATTRIBUTE_ARCHIVE = $00000020; {$EXTERNALSYM FILE_ATTRIBUTE_ARCHIVE} FILE_ATTRIBUTE_DEVICE = $00000040; {$EXTERNALSYM FILE_ATTRIBUTE_DEVICE} FILE_ATTRIBUTE_NORMAL = $00000080; {$EXTERNALSYM FILE_ATTRIBUTE_NORMAL} FILE_ATTRIBUTE_TEMPORARY = $00000100; {$EXTERNALSYM FILE_ATTRIBUTE_TEMPORARY} FILE_ATTRIBUTE_SPARSE_FILE = $00000200; {$EXTERNALSYM FILE_ATTRIBUTE_SPARSE_FILE} FILE_ATTRIBUTE_REPARSE_POINT = $00000400; {$EXTERNALSYM FILE_ATTRIBUTE_REPARSE_POINT} FILE_ATTRIBUTE_COMPRESSED = $00000800; {$EXTERNALSYM FILE_ATTRIBUTE_COMPRESSED} FILE_ATTRIBUTE_OFFLINE = $00001000; {$EXTERNALSYM FILE_ATTRIBUTE_OFFLINE} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = $00002000; {$EXTERNALSYM FILE_ATTRIBUTE_NOT_CONTENT_INDEXED} FILE_ATTRIBUTE_ENCRYPTED = $00004000; {$EXTERNALSYM FILE_ATTRIBUTE_ENCRYPTED} FILE_ATTRIBUTE_VIRTUAL = $00010000; {$EXTERNALSYM FILE_ATTRIBUTE_VIRTUAL} {$EXTERNALSYM INVALID_FILE_ATTRIBUTES} INVALID_FILE_ATTRIBUTES = DWORD($FFFFFFFF); |
AW: Alternative zur Funktion FileGetAttr?
Wenn man nur für eine Plattform entwickelt kann man im Projekt unter Hinweise und Warnungen die Warnungen für plattformspezifische Symbole und Units ausschalten.
|
AW: Alternative zur Funktion FileGetAttr?
Zitat:
Zitat:
|
AW: Alternative zur Funktion FileGetAttr?
Zitat:
Hauptsache, das Ausschalten funktioniert - die Warnungen erscheinen bei mir standardmäßig auch und nach dem Abschalten nicht mehr. |
AW: Alternative zur Funktion FileGetAttr?
Diese Meldungen bekommt man mit Delphi 7 auch schon, damit man ggfls. kompatibel mit Kylix für Unix programmieren kann.
Durch die Delphisoucen von Delphi 7 ziehen sich solche Konstrukte:
Delphi-Quellcode:
Warum sollte man das bei Delphi 2009 alles wieder rausgeschmissen haben?
uses
{$IFDEF MSWINDOWS} Windows, {$ENDIF} {$IFDEF LINUX} Types, {$ENDIF} ... (jaja: langlangistsher ;-)) |
AW: Alternative zur Funktion FileGetAttr?
Das bestätigt mich in meiner Annahme das Delphi seiner Zeit schon immer weit vorraus war :stupid:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 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