Func _FTP_FileAttributesToStr($iAttributes, $sSeparator=" | ")
Local Const $FILE_ATTRIBUTE_ARCHIVE = 32 ;A file or directory that is an archive file or directory. Applications typically use this attribute to mark files for backup or removal.
Local Const $FILE_ATTRIBUTE_COMPRESSED = 2048 ;A file or directory that is compressed. For a file, all of the data in the file is compressed. For a directory, compression is the default for newly created files and subdirectories.
Local Const $FILE_ATTRIBUTE_DEVICE = 64 ;This value is reserved for system use.
Local Const $FILE_ATTRIBUTE_DIRECTORY = 16 ;The handle that identifies a directory.
Local Const $FILE_ATTRIBUTE_ENCRYPTED = 16384 ;A file or directory that is encrypted. For a file, all data streams in the file are encrypted. For a directory, encryption is the default for newly created files and subdirectories.
Local Const $FILE_ATTRIBUTE_HIDDEN = 2 ;The file or directory is hidden. It is not included in an ordinary directory listing.
Local Const $FILE_ATTRIBUTE_NORMAL = 128 ;A file that does not have other attributes set. This attribute is valid only when used alone.
Local Const $FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 ;The file or directory is not to be indexed by the content indexing service.
Local Const $FILE_ATTRIBUTE_OFFLINE = 4096 ;The data of a file is not available immediately. This attribute indicates that the file data is physically moved to offline storage. This attribute is used by Remote Storage, which is the hierarchical storage management software. Applications should not arbitrarily change this attribute.
Local Const $FILE_ATTRIBUTE_READONLY = 1 ;A file that is read-only. Applications can read the file, but cannot write to it or delete it. This attribute is not honored on directories. For more information, see "You cannot view or change the Read-only or the System attributes of folders in Windows Server 2003, in Windows XP, or in Windows Vista".
Local Const $FILE_ATTRIBUTE_REPARSE_POINT = 1024 ;A file or directory that has an associated reparse point, or a file that is a symbolic link.
Local Const $FILE_ATTRIBUTE_SPARSE_FILE = 512 ;A file that is a sparse file.
Local Const $FILE_ATTRIBUTE_SYSTEM = 4 ;A file or directory that the operating system uses a part of, or uses exclusively.
Local Const $FILE_ATTRIBUTE_TEMPORARY = 256 ;A file that is being used for temporary storage. File systems avoid writing data back to mass storage if sufficient cache memory is available, because typically, an application deletes a temporary file after the handle is closed. In that scenario, the system can entirely avoid writing the data. Otherwise, the data is written after the handle is closed.
Local Const $FILE_ATTRIBUTE_VIRTUAL = 65536 ;This value is reserved for system use.
Local $sAttributes = ""
Local $aAttribs = StringSplit( _
"ARCHIVE|COMPRESSED|DEVICE|DIRECTORY|ENCRYPTED|HIDDEN|NORMAL|" & _
"NOT_CONTENT_INDEXED|OFFLINE|READONLY|REPARSE_POINT|SPARSE_FILE|SYSTEM|TEMPORARY|VIRTUAL", "|")
For $i = 1 To $aAttribs[0]
If BitAND($iAttributes, Eval("FILE_ATTRIBUTE_" & $aAttribs[$i])) Then $sAttributes &= $aAttribs[$i] & $sSeparator
Next
Return StringRegExpReplace($sAttributes, "(\Q" & $sSeparator & "\E)+$", "")
EndFunc