FileGetAttr
Adam Boduch
FileGetAttr
Moduł: SysUtils
Przykład odczytu atrybutów wskazanego pliku:
program Foo;
{$APPTYPE CONSOLE}
uses
SysUtils, Dialogs;
var
FileName : String;
Attr : Integer;
begin
if PromptForFileName(FileName) then
begin
Attr := FileGetAttr(FileName);
Writeln('faReadOnly: ', (Attr and faReadOnly) = faReadOnly);
Writeln('faArchive: ', (Attr and faArchive) = faArchive);
Writeln('faSysFile: ', (Attr and faSysFile) = faSysFile);
Writeln('faHidden: ', (Attr and faHidden) = faHidden);
Writeln('faDirectory: ', (Attr and faDirectory) = faDirectory);
Readln;
end;
end.
Stałe takie jak np. faReadOnly zadeklarowane są w module SysUtils, ich pełna lista znajuje się w tabeli poniżej.
Nazwa stałej | Wartość | Opis |
---|---|---|
faReadOnly | 1 | Pliki tylko do oczytu |
faHidden | 2 | Ukryte pliki |
faSysFile | 4 | Pliki systemowe |
faDirectory | 16 | Katalogi |
faArchive | 32 | Plik archiwalny |
faSymLink | 64 | Link symboliczny |
faAnyFile | 64 | Dowolny plik |
Zobacz też:
No racja. Trzeba to uaktualnić zwłaszcze że w Delphi 2010 dalej jest błąd z faAnyFile. Zamiast stosować faAnyFile można użyć wartości #FFFFFF. Wtedy przy szukaniu plików pod Vistą, procka będzie zwracać wszystkie pliki.
Nie wiem jak jest pod Windows XP ale pod Windows 98 atrybut Dowolny plik ma wartość 0 a nie 64. Sprawdziłem i miałem ustawiony tylko atrybut Tylko do odczytu i używając SetFileAttributes(PChar(FileName),64) nie udało mi się usunąć tego atrybutu. Pomogło dopiero
SetFileAttributes(PChar(FileName),0); Jeśli mam rację to niech ktoś wyedytuje artykuł (ja się za to nie zabieram bo nie wiem jak jest pod Windows XP).