锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
* @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
嫻嬭瘯鐢ㄤ緥錛?br>
#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://m.shnenglu.com/Files/bujiwu/FileSystem.rar
]]>
filesystem
function_types
graph
iostreams
math
mpi
program_options
python
regex
serialization
signals
system
test
thread
wave
Windows:
1銆佸紑濮嬭彍鍗?-Microsoft Visual Studio 2008--Visual Studio Tools---Open Visual Studio 2008 Command Prompt 鎵撳紑鍛戒護琛岀獥鍙?br>3銆佸埄鐢╟d鍛戒護榪涘叆鍒幫細boost->toos->jam->src鐩綍
4銆佺紪璇戯紝vc 2008杈撳叆鍛戒護錛歜uild vc9
5銆佹妸鐢熸垚鐨刡jam.exe(bin.ntx86鐩綍涓?鎷瘋礉鍒癇oost鏍圭洰褰曚笅錛岃緭鍏ュ懡浠わ細
6銆乥jam --with-regex
Linux:
$cd path/to/boost_1_40_0
$ ./bootstrap.sh
浜х敓bjam鏂囦歡
$ ./bjam install 瀹夎鎵鏈?br> $./bjam --with-regex 瀹夎鐗瑰畾鐨勫簱
$./bjam --with-filesystem
#./bjam --with-filesystem "-sTOOLS=gcc" "--includedir=/usr/include" "--libdir=/usr/lib/boost" install
]]>