## File and Path name on the FatFs module

The format of file and path name on the FatFs module is similer to MS-DOS. However it does not have a concept of current directory like OS oriented file system. All objects on the drive are specified in full path name from the root directory.

     "[drive#:][/]directory/file"

     "file1.txt"           a file on drive 0
     "/file1.txt"          (same as above)
     "dir1/dir2/file1.txt" a file on drive 0
     "2:dir3/file2.txt"    a file on drive 2
     "2:/dir5"             a directory on drive 2
     ""                    the root directory on drive 0
     "/"                   (same as above)
     "2:"                  the root directory on drive 2

The FatFs module supports only 8.3 format file name and long file name is currentry not supported. For directory separator, a '/' is used, not a '\'. Heading '/' is ignored and can be omitted.

The logical drive number is specified in a numeral with a colon. When the drive number is omitted, it is assumed default drive (0:). As for the Tiny-FatFs, it has only one logical drive and always works as drive 0. Any drive number cannot be contained in the path name.

## Correspondence between logical/physical drive

In default, the FatFs module has work areas that called file system object for each logical drive. The logical drive is bound to the physical drive that has same drive number, and the first partition is mounted. When `_MULTI_PARTITION` is specified in configuration option, each individual logical drive can be bound to any physical drive/partition. In this case, a drive number resolution table must be defined as follows:

    Example: Logical drive 0-2 are assigned to three pri-partitions on the physical drive 0 (fixed disk)
             Logical drive 3 is assigned to physical drive 1 (removable disk)

    const PARTITION Drives[] = {
        {0, 0},     /* Logical drive 0 ==> Physical drive 0, 1st partition */
        {0, 1},     /* Logical drive 1 ==> Physical drive 0, 2nd partition */
        {0, 2},     /* Logical drive 2 ==> Physical drive 0, 3rd partition */
        {1, 0}      /* Logical drive 3 ==> Physical drive 1 */
    };

There are some consideration when use `_MULTI_PARTITION` configuration.

- Only pri-partition (0-3) can be mounted.
- When the physical drive have no partition table (super floppy format), the partition number is ignored.
- The physical drive that has two or more logical drives must be fixed drive.