Format: s32 mfsHFnsplit(const u8* path, u8* drive, u8* dir, u8* name, u8* type)
Arguments:
*path Path name
*drive Drive name
*dir Directory name
*name File name
*type Extension
Return value:Flag indicating component
Function: Splits pathname into components
Description: This function splits the pathname specified by path into four components (drive name, directory name, file name, and extension) and stores them in the buffers specified by drive, dir, name, and type, respectively. If NULL is specified for a buffer, the corresponding component is only split from the pathname and is not stored.
The maximum sizes of these character strings are defined as follows. These values includes the terminating NULL space.
MFS_MAXPATH 128 Path name MFS_MAXDRIVE 3 Drive name MFS_MAXDIR 100 Directory name MFS_MAXFILE 21 File name MFS_MAXTYPE 7 Extension
mfsHFnsplit assumes that there is a sufficiently large amount of space to be able to store each non-NULL component. mfsHFnsplit uses the following rules to split path.
* drive contains a colon (such as A: or B:) * dir contains the directory separator '/' at the beginning and end (such as /nintendo/64/) * type contains a period before the extension (such as .text or .html)
A flag indicating whether or not a component is contained in path is returned as the return value. The flag has a bit configuration in which the corresponding bits are as follows:
MFS_FNSPLIT_TYPE 0x02 MFS_FNSPLIT_FILENAME 0x04 MFS_FNSPLIT_DIRECTORY 0x08 MFS_FNSPLIT_DRIVE 0x10
mfsHFsplit performs the opposite operation to the operation performed by mfsHFnmerge.