SplitFilename - Split a filename into its components

Module description

These function is used to extract the path, filename and/or extension out of a fully-qualified path name.

Pass in NULL for components which you do not require.

Note that SplitFilename will also support being passed a GUID string representing an asset. Example: "{B5B12976-3C00-475A-A619-CE0C76BD8483}" If the IAssetManager can find an asset corresponding to this string, SplitFilename will use the filename of this asset.

{
CStr p, f, e;
CStr name("c:\\mydir\\myfile.txt");
SplitFilename(name, &p, &f, &e);
// p now contains "c:\\mydir"
// f now contains "myfile"
// e now contains ".txt"
}
{
WStr p;
WStr name(L"c:\\mydir\\myfile.txt");
SplitFilename(name, &p, NULL, NULL);
// p now contains L"c:\\mydir"
}
{
wchar_t file[MAX_PATH];
SplitFilename(L"c:\\mydir\\myfile.txt", NULL, file, NULL);
// file now contains L"myfile"
}
Parameters
[in]full_pathFull pathname, cannot be NULL.
[out]directoryExtracted path name, with directory. Pass NULL if you do not need it.
[in]dbuflenApplies only to the char* (wchar_t*) versions of SplitFilename(): size of the directory string buffer, in char (wchar_t) units, not bytes.
[out]filenameExtracted filename, without extension. Pass NULL if you do not need it.
[in]fbuflenApplies only to the char* (wchar_t*) versions of SplitFilename(): size of the filename string buffer, in char (wchar_t) units, not bytes.
[out]extensionExtracted extension. Pass NULL if you do not need it.
[in]ebuflenApplies only to the char* (wchar_t*) versions of SplitFilename(): size of the extension string buffer, in char (wchar_t) units, not bytes.

Functions

CoreExport void SplitFilename (const CStr &full_path, CStr *directory, CStr *filename, CStr *extension)
 SplitFilename (CStr* version) More...
 
CoreExport void SplitFilename (LPCSTR full_path, LPSTR directory, size_t dbuflen, LPSTR filename, size_t fbuflen, LPSTR extension, size_t ebuflen)
 SplitFilename (char* version) More...
 
CoreExport void SplitFilename (const WStr &full_path, WStr *directory, WStr *filename, WStr *extension)
 SplitFilename (WStr* version) More...
 
CoreExport void SplitFilename (LPCWSTR full_path, LPWSTR directory, size_t dbuflen, LPWSTR filename, size_t fbuflen, LPWSTR extension, size_t ebuflen)
 SplitFilename (wchar_t* version) More...
 

Function Documentation

CoreExport void SplitFilename ( const CStr full_path,
CStr directory,
CStr filename,
CStr extension 
)

SplitFilename (CStr* version)

CoreExport void SplitFilename ( LPCSTR  full_path,
LPSTR  directory,
size_t  dbuflen,
LPSTR  filename,
size_t  fbuflen,
LPSTR  extension,
size_t  ebuflen 
)

SplitFilename (char* version)

CoreExport void SplitFilename ( const WStr full_path,
WStr directory,
WStr filename,
WStr extension 
)

SplitFilename (WStr* version)

CoreExport void SplitFilename ( LPCWSTR  full_path,
LPWSTR  directory,
size_t  dbuflen,
LPWSTR  filename,
size_t  fbuflen,
LPWSTR  extension,
size_t  ebuflen 
)

SplitFilename (wchar_t* version)