FreeMat
FILEATTRIB Get and Set File or Directory Attributes

Section: Operating System Functions

Usage

Retrieves information about a file or directory. The first version uses the syntax

   y = fileattrib(filename)

where filename is the name of a file or directory. The returned structure contains several entries, corresponding to the attributes of the file. Here is a list of the entries, and their meaning:

  • Name - the full pathname for the file
  • archive - not used, set to 0
  • system - not used, set to 0
  • hidden - set to 1 for a hidden file, and 0 else.
  • directory - set to 1 for a directory, and 0 for a file.
  • UserRead - set to 1 if the user has read permission, 0 otherwise.
  • UserWrite - set to 1 if the user has write permission, 0 otherwise.
  • UserExecute - set to 1 if the user has execute permission, 0 otherwise.
  • GroupRead - set to 1 if the group has read permission, 0 otherwise.
  • GroupWrite - set to 1 if the group has write permission, 0 otherwise.
  • GroupExecute - set to 1 if the group has execute permission, 0 otherwise.
  • OtherRead - set to 1 if the world has read permission, 0 otherwise.
  • OtherWrite - set to 1 if the world has write permission, 0 otherwise.
  • OtherExecute - set to 1 if the world has execute permission, 0 otherwise.

You can also provide a wildcard filename to get the attributes for a set of files e.g.,

   y = fileattrib('foo*')

You can also use fileattrib to change the attributes of a file and/or directories. To change attributes, use one of the following syntaxes

   y = fileattrib(filename,attributelist)
   y = fileattrib(filename,attributelist,userlist)
   y = fileattrib(filename,attributelist,userlist,'s')

where attributelist is a string that consists of a list of attributes, each preceeded by a + to enable the attribute, and - to disable the attribute. The valid list of attributes that can be changed are

  • 'w' - change write permissions
  • 'r' - change read permissions
  • 'x' - change execute permissions

for example, '-w +r' would indicate removal of write permissions and addition of read permissions. The userlist is a string that lists the realm of the permission changes. If it is not specified, it defaults to 'u'.

  • 'u' - user or owner permissions
  • 'g' - group permissions
  • 'o' - other permissions ("world" in normal Unix terminology)
  • 'a' - equivalent to 'ugo'.

Finally, if you specify a 's' for the last argument, the attribute change is applied recursively, so that setting the attributes for a directory will apply to all the entries within the directory.