Description
-
Sets attributes for a file or folder.
Return Type
-
None.
Syntax
-
object.SetAttributes [RemotePath], [Size],
[Uid], [Gid], [Permissions], [AccessTime],
[ModificationTime]
The SetAttributes Method syntax has these parts:
| object |
An expression
evaluating to an object of type wodFtpDLX. |
|
RemotePath |
Optional. A Variant
value. Full path to a file/directory on the server. |
| Size |
Optional. A Variant
value. New file/directory size. |
| Uid |
Optional. A Variant
value. Sets user ownership for the file/directory. |
| Gid |
Optional. A Variant
value. Sets group ownership for the
file/directory. |
|
Permissions |
Optional. A Variant
value. Sets file/directory permissions. |
|
AccessTime |
Optional. A Variant
value. Sets last access time. |
|
ModificationTime |
Optional. A Variant
value. Sets last modification time. |
Remarks
-
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,
usualy represented 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).
-
-
However, when you supply Permission value you must provide it
in DECIMAL! That means that 777 oct will be 511 dec, and you
must set 511 as Permission, to become 777 on remote side. Same rule
applies for all protocols!
-
WARNING: in protocols other than SFTP
this method will allow only limited subset of available
attributes to be set. Since there is no common way to set all of them,
you can set only one set of attributes at a time (either Size,
UID+GID, Permissions, ATIME+MTIME). If you try to set more than one
using one SetAttributes call, component will return an error. Currently you can only set
Permissions (with SITE CHMOD command)
and ModificationTime (through MFMT/MDTM commands). Other values
will be ignored. FollowSymLink is ignored in those protocols. We are open for any ideas to extend these protocols so they support
full subset - as in SFTP protocol.
|