The SetAttributes method is used to set certain attributes
for the file or directory on the server. Although all
parameters are optional you should set at least one parameter for
this method to actually send a request to the server. If
RemotePath is not set, then the
RemotePath
property will be used as the file/directory name whose
attributes are set.
IMPORTANT : if you set the file
UID, also set GID in same function call (and vice
versa). This is the way setting attributes works. The same
applies when setting AccessTime and
ModificationTime. If you omit one
of these parameters while setting the other, it will be set
to 0 (representing Jan 1, 1970).
If you want to set only
one of these parameters, you should first retrieve the
attributes of the file/directory and use these retrieved values in this
method.
The value for Permissions is defined by the POSIX standard,
which is briefly described below:
- you should represent them in octal (base
8) to make parsing them easier
Permissions AND 777 (octal) will give you
read/write/execute permissions for owner, group and others.
To be more precise, 1 indicates execute permission, 2 indicates
write permission, 4 indicates read permission. For example, if
file Permission AND 777 (octal) gives 754, this is represented
on the server as -rwxr-xr-- which means: the owner
can read/write/execute, the group can read/execute, and others
can only read.
To determine if an attribute belongs to directory, test for
Permissions AND 40000 (octal). To determine if an attribute
belongs to a symbolic link, test for Permissions AND 120000
(octal).