/**********************************************************************
* Copyright (C) 2007 - All Rights Reserved
*
* File: SplitPath.h
* Description: 進(jìn)行文件路徑字符串分割
*
* Authors: yanglinbo,
* Revisions: See bottom of file.
*
***********************************************************************/
#ifndef __SplitPath_H__
#define __SplitPath_H__
class CSplitPath
{
public:
CSplitPath( LPCTSTR lpszPath = NULL )
{
memset( path_buffer, 0, sizeof( path_buffer ) );
memset( drive, 0, sizeof( drive ) );
memset( dir, 0, sizeof( dir ) );
memset( fname, 0, sizeof( fname ) );
memset( ext, 0, sizeof( ext ) );
if ( lpszPath ) Split( lpszPath );
}
// 進(jìn)行分割
BOOL Split(LPCTSTR lpszPath )
{
if ( lpszPath == NULL ) return FALSE;
_tcsncpy( path_buffer, lpszPath, sizeof( path_buffer ) - 1 );
_tsplitpath( path_buffer, drive, dir, fname, ext );
return TRUE;
}
// 獲取全路徑 :"C:\\Temp\\Foo.txt"
CString GetFullPath( void ) { return path_buffer; }
// 獲取驅(qū)動器盤符 :"C:"
CString GetDrive( void ) { return drive; }
// 獲取除去盤符文件名的路徑 :"\\Temp\\"
CString GetDirectory( void ) { return dir; }
// 獲取文件名稱除去擴(kuò)展名 : "Foo"
CString GetFileName( void ) { return fname; }
// 獲取擴(kuò)展名 :".txt"
CString GetExtension( void ) { return ext; }
// 獲取全文件名稱 : "Foo.txt"
CString GetFullFileName( void ) { return this->GetFileName() + this->GetExtension(); }
protected:
TCHAR path_buffer[_MAX_PATH];
TCHAR drive[_MAX_DRIVE];
TCHAR dir[_MAX_DIR];
TCHAR fname[_MAX_FNAME];
TCHAR ext[_MAX_EXT];
};
#endif