File system hooks

# File system hooks ## ALLEGRO_FS_ENTRY
    typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;
Opaque filesystem entry object. Represents a file or a directory (check with al_is_directory or al_is_file). There are no user accessible member variables. # Enumerations ## ALLEGRO_FILE_MODE
    enum {
Filesystem modes/types ALLEGRO_FILEMODE_READ - Readable ALLEGRO_FILEMODE_WRITE - Writable ALLEGRO_FILEMODE_EXECUTE - Executable ALLEGRO_FILEMODE_HIDDEN - Hidden ALLEGRO_FILEMODE_ISFILE - Regular file ALLEGRO_FILEMODE_ISDIR - Directory # Search Path Routines ## al_add_search_path
    bool al_add_search_path(const char *path)
Adds a path to the list of directories to search for files when searching/opening files with a relative pathname. ## al_get_search_path
    bool al_get_search_path(uint32_t idx, char *dest, size_t len)
Fills in 'dest' up to 'len' bytes with the 'idx'th search path item. Parameters: idx - index of search path element requested dest - memory buffer to copy path to len - length of memory buffer Returns true on success, and false on failure. errno is set to indicate the error. Possible Errors: * EINVAL - invalid item selected * ERANGE - buffer not large enough See also: al_get_errno ## al_search_path_count
    int32_t al_search_path_count()
Returns the number of items in the search path list. # File Manipulation ## al_create_entry
    ALLEGRO_FS_ENTRY *al_create_entry(const char *path)
Creates an ALLEGRO_FS_ENTRY object pointing to path. 'path' can be a file or a directory and must not be NULL. ## al_destroy_entry
    void al_destroy_entry(ALLEGRO_FS_ENTRY *handle)
Destroys a fs entry handle. Closes file if it was open. Does nothing if passed NULL. ## al_close_entry
    void al_close_entry(ALLEGRO_FS_ENTRY *handle)
Closes fs entry. Does nothing if passed NULL. ## al_closedir
    bool al_closedir(ALLEGRO_FS_ENTRY *dir)
Closes a previously opened directory entry object. al_close_entry is also a valid way to close any entry object. Does not free the entry object if it was opened with al_opendir. XXX This is probably a bug. Returns true on succes, false on failure and fills in errno to indicate the error. ## al_mkdir
    bool al_mkdir(const char *path)
Creates a new directory on disk given the path 'path'. Returns false on error and fills in errno to indicate the error. See also: al_get_errno ## al_open_entry
    bool al_open_entry(ALLEGRO_FS_ENTRY *handle)
Opens handle with mode 'mode'. mode is a stdio type mode, ie: "r", "w", etc Returns true on success, false on failure and fills in errno to indicate the error. See also: al_get_errno ## al_opendir
    ALLEGRO_FS_ENTRY *al_opendir(const char *path)
Creates and opens a filesystem entry object for a directory. Returns NULL on error. ## al_readdir
    ALLEGRO_FS_ENTRY *al_readdir(ALLEGRO_FS_ENTRY *dir)
Reads the next dir item and returns a filesystem entry for it. Returns NULL on error. ## al_remove_entry
    bool al_remove_entry(ALLEGRO_FS_ENTRY *e)
"Unlink" or delete this file on disk. Returns true on success, and false on failure, error is indicated in errno. ## al_remove_str
    bool al_remove_str(const char *path)
Unlink 'path' entry from disk. Returns true on success, and false on failure. errno is filled in to indicate the error. See Also: al_remove_entry ## al_fstat
    bool al_fstat(ALLEGRO_FS_ENTRY *fp)
Updates stat info for entry 'fp'. Returns true on success, false on failure. Fills in errno to indicate the error. See also al_get_errno al_get_entry_ctime al_is_file # File Properties ## al_is_present
    bool al_is_present(ALLEGRO_FS_ENTRY *e)
Check if the given entry exists on disk. Returns true if it does exist or false if it doesn't exist, or an error occured. Error is indicated in errno. ## al_is_present_str
    bool al_is_present_str(const char *path)
Check if entry 'path' exists on disk. See Also: al_is_present ## al_is_file
    bool al_is_file(ALLEGRO_FS_ENTRY *e)
Return true iff this entry is a regular file. ## al_is_directory
    bool al_is_directory(ALLEGRO_FS_ENTRY *e)
Return true iff this entry is a directory. ## al_get_entry_mode
    uint32_t al_get_entry_mode(ALLEGRO_FS_ENTRY *e)
Returns the entry's mode flags. See also: al_get_errno See the ALLEGRO_FILE_MODE enum for valid flags. ## al_get_entry_mode_str
    uint32_t al_get_entry_mode_str(const char *path)
Returns stat 'mode' for fs entry 'path'. See Also: ALLEGRO_FILE_MODE ## al_get_entry_atime
    time_t al_get_entry_atime(ALLEGRO_FS_ENTRY *e)
Returns the time in seonds since the epoch since the entry was last accessed. Warning: some filesystem either don't support this flag, or people turn it off to increase performance. It may not be valid in all circumstances. ## al_get_entry_ctime
    time_t al_get_entry_ctime(ALLEGRO_FS_ENTRY *e)
Returns the time in seconds since the epoch this entry was created on the filsystem. ## al_get_entry_mtime
    time_t al_get_entry_mtime(ALLEGRO_FS_ENTRY *e)
Returns the time in seconds since the epoch since the entry was last modified. ## al_get_entry_name
    ALLEGRO_PATH *al_get_entry_name(ALLEGRO_FS_ENTRY *fp)
Returns the entry's filename path. Note that the path will not be an absolute path if the entry wasn't created from an absolute path. Returns NULL on error. errno is set to indicate the error. ## al_get_entry_size
    off_t al_get_entry_size(ALLEGRO_FS_ENTRY *e)
Returns the size, in bytes, of the given entry. # Other ## al_getcwd
    ALLEGRO_PATH *al_getcwd(void)
Returns the path to the current working directory. Returns NULL on failure. errno is filled in to indicate the error. Possible Errors: * ERANGE - buffer is not large enough See also: al_get_errno ## al_chdir
    bool al_chdir(const char *path)
Changes the current working directory to 'path'. Returns -1 on error. ## al_path_sep
    int32_t al_path_sep(char *sep, size_t len)
Fills in 'sep' up to 'len' characters with the path separator string. XXX return code? ## al_drive_sep
    int32_t al_drive_sep(char *sep, size_t len)
Fills in 'sep' up to 'len' characters with the drive separator string. XXX return code?

Last updated: 2009-05-04 10:18:40 UTC