Description |
The FileSetAttr function sets the attributes of the specified FileName.
The Attributes integer must be set to a combination of none, some or all of the following independent bit settings :
faReadOnly | : 1 : Read-only files |
faHidden | : 2 : Hidden files |
faSysFile | : 4 : System files |
faVolumeID | : 8 : Volume ID files |
faDirectory | : 16 : Directory files |
faArchive | : 32 : Archive files |
faSymLink | : 64 : Symbolic link |
The returned Integer value is zero if the set was successful, otherwise it contains an error code.
|
|
Notes |
This function is Operating System dependent. For example, Archive means nothing on Linux.
Important : During testing, the author always received a non-zero return code, even though the appropriate bits were set OK.
|
|
Related commands |
FileGetAttr |
|
Gets 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, make is read only and hidden and display its attributes |
var
fileName : string;
myFile : TextFile;
attrs : Integer;
begin // Try to open a text file for writing to
fileName := 'ATestFile.txt';
AssignFile(myFile, fileName);
ReWrite(myFile);
// Write to the file
Write(myFile, 'Hello World');
// Close the file
CloseFile(myFile);
// Make the file read only and system
if FileSetAttr(fileName, faReadOnly or faSysFile) > 0
then WriteLn('File made into a read only system file')
else WriteLn('File attribute change failed');
// 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 made into a read only system file
File is read only
File is not hidden
File is a system file
File is not a Volume ID
File is not a directory
File is not archived
File is not a symbolic link
|
|