3ds Max C++ API Reference
SplitFilename - Split a filename into its components

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

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

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

\code
{
    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"
}
\endcode

\param[in] full_path Full pathname, cannot be NULL.
\param[out] directory   Extracted path name, with directory.  Pass NULL if you do not need it.
\param[in] dbuflen      Applies only to the char* (wchar_t*) versions of SplitFilename(): size of the \p directory string buffer, in char (wchar_t) units, not bytes.
\param[out] filename    Extracted filename, without extension.  Pass NULL if you do not need it.
\param[in] fbuflen      Applies only to the char* (wchar_t*) versions of SplitFilename(): size of the \p filename string buffer, in char (wchar_t) units, not bytes.
\param[out] extension   Extracted extension.  Pass NULL if you do not need it.
\param[in] ebuflen      Applies only to the char* (wchar_t*) versions of SplitFilename(): size of the \p extension string buffer, in char (wchar_t) units, not bytes.

Function Documentation

◆ SplitFilename() [1/4]

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

SplitFilename (CStr* version)

◆ SplitFilename() [2/4]

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

SplitFilename (char* version)

◆ SplitFilename() [3/4]

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

SplitFilename (WStr* version)

◆ SplitFilename() [4/4]

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)