## 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.