ObjectPascal
FileGetAttr
Function
Gets the attributes of a file SysUtils unit
 function FileGetAttr ( const FileName : string; ) : Integer;
Description
The FileGetAttr function returns attributes of the specified FileName.
 
The returned Integer value will be a bitwise combination of the following independent attributes :
 
faReadOnly  : Read-only files
faHidden  : Hidden files
faSysFile  : System files
faVolumeID  : Volume ID files
faDirectory  : Directory files
faArchive  : Archive files
faSymLink  : Symbolic link
Notes
This function is Operating System dependent. For example, Archive means nothing on Linux.
Related commands
FileSetAttr Sets the attributes of a file
FileAge Get the last modified date/time of a file without opening it
FileSetDate Set the last modified date and time of a file
FileExists Returns true if the given file exists
 
Example code : Create a text file and display its attributes
var
  fileName : string;
  myFile   : TextFile;

  attrs    : Integer;

begin
  // Try to open a text file for writing to
  fileName := 'Test.txt';
  AssignFile(myFile, fileName);
  ReWrite(myFile);

  // Write to the file
  Write(myFile, 'Hello World');

  // Close the file
  CloseFile(myFile);

  // Get the file attributes
  attrs := FileGetAttr(fileName);

  // Display these attributes
  if attrs and faReadOnly > 0
  then WriteLn('File is read only')
  else WriteLn('File is not read only');

  if attrs and faHidden > 0
  then WriteLn('File is hidden')
  else WriteLn('File is not hidden');

  if attrs and faSysFile > 0
  then WriteLn('File is a system file')
  else WriteLn('File is not a system file');

  if attrs and faVolumeID > 0
  then WriteLn('File is a volume ID')
  else WriteLn('File is not a volume ID');

  if attrs and faDirectory > 0
  then WriteLn('File is a directory')
  else WriteLn('File is not a directory');

  if attrs and faArchive > 0
  then WriteLn('File is archived')
  else WriteLn('File is not archived');

  if attrs and faSymLink > 0
  then WriteLn('File is a symbolic link')
  else WriteLn('File is not a symbolic link');
end;
Show full unit code
   File is not read only
   File is not hidden
   File is not a system file
   File is not a Volume ID
   File is not a directory
   File is archived
   File is not a symbolic link