| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

# Virtual File System (VFS)

## Classes
struct | csFileTime
| File time structure - used to query and set the last-modification time of a file. More...
struct | iFile
| A replacement for FILE type in the virtual file space. More...
struct | iVFS
| The Virtual Filesystem Class is intended to be the only way for Crystal Space engine to access the files. More...
## File opening flags
#define | VFS_FILE_APPEND 0x00000002
| Open file for append.
#define | VFS_FILE_MODE 0x0000000f
| File open mode mask.
#define | VFS_FILE_READ 0x00000000
| Open file for reading.
#define | VFS_FILE_UNCOMPRESSED 0x80000000
| Store file uncompressed (no gain possible).
#define | VFS_FILE_WRITE 0x00000001
| Open file for writing.
## File status codes
#define | VFS_STATUS_ACCESSDENIED 4
| Access denied: either you have no write access, the filesystem is read-only or you tried to read a file opened for write access.
#define | VFS_STATUS_IOERROR 5
| An error occured during reading or writing data.
#define | VFS_STATUS_NOSPACE 2
| Device has no more space for file data.
#define | VFS_STATUS_OK 0
| File status ok.
#define | VFS_STATUS_OTHER 1
| Unclassified error.
#define | VFS_STATUS_RESOURCES 3
| Not enough system resources.
## Defines
#define | ASSIGN_FILETIME(ft, tm)
| This macro can be used to assign a "struct tm" to a csFileTime.
#define | VFS_MAX_PATH_LEN 256
| The maximal "virtual" path+filename length.
#define | VFS_PATH_DIVIDER ','
| Composite path divider.
#define | VFS_PATH_SEPARATOR '/'
| The "virtual" path separator.

## Define Documentation

#define ASSIGN_FILETIME | ( | ft,
|  | tm |  | ) |

Value:

    (ft).sec = (tm).tm_sec; \
      (ft).min = (tm).tm_min;       \
      (ft).hour = (tm).tm_hour;     \
      (ft).day = (tm).tm_mday;      \
      (ft).mon = (tm).tm_mon;       \
      (ft).year = (tm).tm_year + 1900;

This macro can be used to assign a "struct tm" to a csFileTime.

Definition at line 56 of file vfs.h.

#define VFS_FILE_APPEND 0x00000002

Open file for append.

Definition at line 80 of file vfs.h.

#define VFS_FILE_MODE 0x0000000f

File open mode mask.

Definition at line 74 of file vfs.h.

#define VFS_FILE_READ 0x00000000

Open file for reading.

Definition at line 76 of file vfs.h.

#define VFS_FILE_UNCOMPRESSED 0x80000000

Store file uncompressed (no gain possible).

Definition at line 82 of file vfs.h.

#define VFS_FILE_WRITE 0x00000001

Open file for writing.

Definition at line 78 of file vfs.h.

#define VFS_MAX_PATH_LEN 256

The maximal "virtual" path+filename length.

Definition at line 69 of file vfs.h.

#define VFS_PATH_DIVIDER ','

Composite path divider.

Definition at line 65 of file vfs.h.

#define VFS_PATH_SEPARATOR '/'

The "virtual" path separator.

Definition at line 67 of file vfs.h.

#define VFS_STATUS_ACCESSDENIED 4

Access denied: either you have no write access, the filesystem is read-only or you tried to read a file opened for write access.

Definition at line 99 of file vfs.h.

#define VFS_STATUS_IOERROR 5

An error occured during reading or writing data.

Definition at line 101 of file vfs.h.

#define VFS_STATUS_NOSPACE 2

Device has no more space for file data.

Definition at line 92 of file vfs.h.

#define VFS_STATUS_OK 0

File status ok.

Definition at line 88 of file vfs.h.

#define VFS_STATUS_OTHER 1

Unclassified error.

Definition at line 90 of file vfs.h.

#define VFS_STATUS_RESOURCES 3

Not enough system resources.

Definition at line 94 of file vfs.h.