boost::filestream组件封装

boost::filestream组件封装
为了方便日常使用boost::filestream组件,将boost::filestream组件的基本封装。

/*
 * @file FileSystem.h
 * @brief Operation file or diretory
 * @author Jiwu Bu
 * @version 1.0.0
 * @date 2009-11-23
 
*/
#ifndef FILESYSTEM_H_H
#define  FILESYSTEM_H_H

#include 
< iostream >
#include 
< vector >

using   namespace  std;

class  CFileSystem
{
public :
    
/*
     * @brief Gets an array of dirctories from current direcoty,
     *        using Recur value to determine whether to search 
     *        subdirectories.
     * @param SubDirVec Ouput parameter, return the search result
     * @param DirPath
     * @param Recur  Whether search subdirectories.
     * 
     * @return 
     
*/
    
static   bool  GetDirectories(vector < string >&  SubDirVec, 
        
const   string &  DirPath,  bool  Recur  =   false );

    
/*
     * @brief Get the names of files in the specified directory that 
     *        match the specified extensive name, using a value to 
     *        determine whether to search subdirectories.
     * 
     * @param FileVec Ouput parameter, return the search result
     * @param DirPath
     * @param ExeName Extensive name, if ExeName equal  "*.*"  search all file
     * @param Recur   Whether search subdirectories
     * 
     * @return 
     
*/
    
static   bool  GetFiles(vector < string >&  FileVec,  const   string &  DirPath, 
        
const   string &  ExeName,  bool  Recur  =   false );

    
/*
     * @brief Create a new directory.
     * 
     * @param Dir  New directory path. Example:/home/bujiwu/test
     * 
     * @return  true, if success
     *          false, if failed
     
*/
    
static   bool  CreateDirectory( const   string   &  Dir);

    
/*
     * @brief Judge whether this file or diretory exists.
     * 
     * @param Path
     * 
     * @return  true, if exists
     *          false, if not exists
     
*/
    
static   bool  Exists( const   string &  Path);

    
/*
     * @brief Delete this file or directory
     * 
     * @param Path
     
*/
    
static   void  Delete( const   string &  Path);

    
/*
     * @brief Move file or directory from FromPath to ToPath.
     * 
     * @param FromPath
     * @param ToPath
     
*/
    
static   void  Move( const   string &  FromPath,  const   string &  ToPath);

    
/*
     * @brief Copy file or directory from FromPath to ToPath.
     * 
     * @param FromPath
     * @param ToPath
     
*/
    
static   void  Copy( const   string &  FromPath,  const   string &  ToPath);

    
/*
     * @brief Get file size
     * 
     * @param FilePath
     * 
     * @return 
     
*/
    
static  unsigned  long  GetFileSize( const   string &  FilePath);
};

#endif

测试用例:
#include  " ../FileSystem/FileSystem.h "
#include 
< algorithm >
#include 
< iterator >
#include 
< string >

using   namespace  std;

int  main( int  argc,  char *  argv[])
{
    vector
< string >  MyVec;

    
string  Path  =   " /home/bujiwu/EncapDirectory " ;
    
    CFileSystem::Copy(
" /home/bujiwu/epoll " , Path);

    CFileSystem::GetFiles(MyVec, Path, 
" *.* " true );

    copy(MyVec.begin(), MyVec.end(), ostream_iterator
< string > (cout ,  " \n " ) );

    
return   0 ;
}

http://www.cppblog.com/Files/bujiwu/FileSystem.rar

你可能感兴趣的:(boost::filestream组件封装)