1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
const
FILE_LIST_DIRECTORY=1;
function ReadDirectoryAttribute(DirPath:string):Cardinal;
var
hDirectoryFileHandle:HFILE;
FileInfoStruc:TByHandleFileInformation;
begin
//
//*** Get Directory Handle! ***
hDirectoryFileHandle := CreateFile (
PChar(DirPath),
FILE_LIST_DIRECTORY,
FILE_SHARE_READ + FILE_SHARE_WRITE + FILE_SHARE_DELETE,
NIL,
OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS+FILE_FLAG_OVERLAPPED+FILE_FLAG_NO_BUFFERING,
0);
try
GetFileInformationByHandle(hDirectoryFileHandle,FileInfoStruc);
ReadDirectoryAttribute:=FileInfoStruc.dwFileAttributes;
finally
CloseHandle(hDirectoryFileHandle);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
FileAtt:Cardinal;
begin
//*** Avec API CreateFile() et GetFileInformationByHandle()
FileAtt:=ReadDirectoryAttribute(txtDir.Text);
if (FileAtt AND FILE_ATTRIBUTE_READONLY)= FILE_ATTRIBUTE_READONLY then
begin
RichEdit1.Text:='READ ONLY';
end
else
begin
RichEdit1.Text:='Not Read Only';
end;
RichEdit1.Lines.Add(IntToStr(FileAtt));
//*** API GetFileAttributes
FileAtt:=GetFileAttributes(PChar(txtDir.Text));
if (FileAtt AND FILE_ATTRIBUTE_READONLY)= FILE_ATTRIBUTE_READONLY then
begin
RichEdit1.Lines.Add('READ ONLY');
end
else
begin
RichEdit1.Lines.Add('Not Read Only');
end;
RichEdit1.Lines.Add(IntToStr(FileAtt));
//*** Fonction Delphi qui call API GetFileAttributes
FileAtt:=FileGetAttr(txtDir.Text);
if (FileAtt AND FILE_ATTRIBUTE_READONLY)= FILE_ATTRIBUTE_READONLY then
begin
RichEdit1.Lines.Add('READ ONLY');
end
else
begin
RichEdit1.Lines.Add('Not Read Only');
end;
RichEdit1.Lines.Add(IntToStr(FileAtt));
end; |
Partager