牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

VC中分割文件路径的分割类

/**********************************************************************
* Copyright (C) 2007 - All Rights Reserved
*
* File:            SplitPath.h
* Description:       进行文件路径字符串分割
*     
* Authors:         yanglinbo, 
* Revisions:       See bottom of file.

**********************************************************************
*/

#ifndef __SplitPath_H__
#define __SplitPath_H__

class CSplitPath
{
public:
    CSplitPath( LPCTSTR lpszPath 
= NULL )
    {
        memset( path_buffer, 
0sizeof( path_buffer ) );
        memset( drive, 
0sizeof( drive ) );
        memset( dir, 
0sizeof( dir ) );
        memset( fname, 
0sizeof( fname ) );
        memset( ext, 
0sizeof( ext ) );

        
if ( lpszPath ) Split( lpszPath );
    }

    
// 进行分割
    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; }

    
// 获取驱动器盘符 :"C:"
    CString GetDrive( void ) { return drive; }

    
// 获取除去盘符文件名的路径 :"\\Temp\\"
    CString GetDirectory( void ) { return dir; }

    
// 获取文件名称除去扩展名 : "Foo"
    CString GetFileName( void ) { return fname; }

    
// 获取扩展名 :".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

posted on 2007-11-08 14:41 杨粼波 阅读(723) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理