windows_programming_notes.nbk: Home | Index | Next Page: SetFileTime | Previous Page: SetEnvironmentVariable


 SetFileAttributes

Sets the attributes for a file or directory.

To perform this operation as a transacted operation, use the SetFileAttributesTransacted function.

Syntax

    BOOL WINAPI SetFileAttributes(
        __in  LPCTSTR lpFileName,
        __in  DWORD dwFileAttributes
    );

Parameters

Attribute Meaning FILE_ATTRIBUTE_ARCHIVE 32 0x20 A file or directory that is an archive file or a directory.

Applications use this attribute to mark files for backup or removal.

FILE_ATTRIBUTE_HIDDEN 2 0x2 The file or directory is hidden. It is not included in an ordinary directory listing.

FILE_ATTRIBUTE_NORMAL 128 0x80 A file or directory that does not have other attributes set.

This attribute is valid only when used alone.

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 8192 0x2000 The file or directory is not to be indexed by the content indexing service.

FILE_ATTRIBUTE_OFFLINE 4096 0x1000 The data of a file or directory 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.

FILE_ATTRIBUTE_READONLY 1 0x1 A file or directory that is read-only.

For a file, applications can read the file, but cannot write to it or delete it.

For a directory, applications cannot delete it.

FILE_ATTRIBUTE_SYSTEM 4 0x4 A file or directory that the operating system uses a part of, or uses exclusively.

FILE_ATTRIBUTE_TEMPORARY 256 0x100 A file or directory 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.

Return Value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The following table describes how to set the attributes that cannot be set using SetFileAttributes.

Attribute How to Set FILE_ATTRIBUTE_COMPRESSED

0x800 To set a file's compression state, use the DeviceIoControl function with the FSCTL_SET_COMPRESSION operation. FILE_ATTRIBUTE_DEVICE

0x40 Reserved; do not use. FILE_ATTRIBUTE_DIRECTORY

0x10 Files cannot be converted into directories. To create a directory, use the CreateDirectory or CreateDirectoryEx function. FILE_ATTRIBUTE_ENCRYPTED

0x4000 To create an encrypted file, use the CreateFile function with the FILE_ATTRIBUTE_ENCRYPTED attribute. To convert an existing file into an encrypted file, use the EncryptFile function. FILE_ATTRIBUTE_REPARSE_POINT

0x400 To associate a reparse point with a file or directory, use the DeviceIoControl function with the FSCTL_SET_REPARSE_POINT operation. FILE_ATTRIBUTE_SPARSE_FILE

0x200 To set a file's sparse attribute, use the DeviceIoControl function with the FSCTL_SET_SPARSE operation.

Symbolic link behavior—If the path points to a symbolic link, the function returns attributes for the symbolic link.

Transacted Operations

If a file is open for modification in a transaction, no other thread can open the file for modification until the transaction is committed. So if a transacted thread opens the file first, any subsequent threads that try modifying the file before the transaction is committed receives a sharing violation. If a non-transacted thread modifies the file before the transacted thread does, and the file is still open when the transaction attempts to open it, the transaction receives the error ERROR_TRANSACTIONAL_CONFLICT.

Requirements


windows_programming_notes.nbk: Home | Index | Next Page: SetFileTime | Previous Page: SetEnvironmentVariable


Notebook exported on Monday, 7 July 2008, 18:56:50 PM Eastern Daylight Time