{{page>en:templates:fapiint}} ====== DosSetFileMode ====== This call changes the mode (attribute) of the specified file. ===== Syntax ===== DosSetFileMode (FileName, NewAttribute, Reserved) ===== Parameters ===== * FileName ([[PSZ]]) - input : Address of the file path name. [[DosQSysInfo]] is called by an application during initialization to determine the maximum path length allowed by OS/2. * NewAttribute ([[USHORT]]) - input : File's new attribute. File attributes are defined as follows: ^ Bit ^ Description ^ | 15-6 | Reserved and must be zero | | 5 | File archive | | 4 | Subdirectory | | 3 | Volume label | | 2 | System file (excluded from normal directory searches) | | 1 | Hidden file | | 0 | Read only file | These bits may be set individually or in combination. For example, an attribute value of 0021H (bits 5 and 0 set to 1) indicates a read-only file that should be archived. * Reserved ([[ULONG]]) - input : Reserved must be set to zero. ===== Return Code ===== rc ([[USHORT]]) - return Return code descriptions are: * 0 NO_ERROR * 2 ERROR_FILE_NOT_FOUND * 3 ERROR_PATH_NOT_FOUND * 5 ERROR_ACCESS_DENIED * 26 ERROR_NOT_DOS_DISK * 32 ERROR_SHARING_VIOLATION * 36 ERROR_SHARING_BUFFER_EXCEEDED * 87 ERROR_INVALID_PARAMETER * 108 ERROR_DRIVE_LOCKED * 206 ERROR_FILENAME_EXCED_RANGE ===== Remarks ===== Attributes for Volume Label (0008H) and Subdirectory (0010H) cannot be changed using DosSetFileMode. If these attributes are specified, ERROR_INVALID_PARAMETER is returned. [[DosQFileMode]] is used to query the current settings for file attributes. Calling [[DosQFSInfo]] obtains volume label information. Attributes of root directories cannot be changed using DosSetFileMode. If these attributes are specified, ERROR_ACCESS_DENIED is returned. ===== Example Code ===== ==== C Binding ==== #define INCL_DOSFILEMGR USHORT rc = DosSetFileMode(FileName, NewAttribute, Reserved); PSZ FileName; /* File path name string */ USHORT NewAttribute; /* New attribute of file */ ULONG 0; /* Reserved (must be zero) */ USHORT rc; /* return code */ ==== MASM Binding ==== EXTRN DosSetFileMode:FAR INCL_DOSFILEMGR EQU 1 PUSH@ ASCIIZ FileName ;File path name string PUSH WORD NewAttribute ;New attribute of file PUSH DWORD 0 ;Reserved (must be zero) CALL DosSetFileMode Returns WORD ===== Note ===== Text based on http://www.edm2.com/index.php/DosSetFileMode {{page>en:templates:fapi}}