FreeMat: FILEATTRIB Get and Set File or Directory Attributes

FreeMat

- Main Page
- Related Pages

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.