在資訊爆炸的年代裡,把各種資訊分類已經是一種非常必要的功能,比如把股票行情資料儲存到硬碟裡,就需要分開幾個目錄儲存。比如你寫LOG到硬碟時,也需要分成幾個目錄來儲存,這樣讓維護人員很好地找到出錯的資訊,或者有用的資訊。像我在開發銀行的信用卡系統時,就需要把所有通過網路傳送的資料全部產生文字檔儲存到當日的目錄裡,也就是說每天都需要建立一個目錄,把所有交易的資料產生LOG儲存進去。那麼面對這樣的需求,你是怎麼樣去建立目錄的呢?這就需要使用到Windows API函數CreateDirectory建立目錄,當然目錄過多時也需要調用函數RemoveDirectory來刪除不需要的目錄,然而函數RemoveDirectory只能刪除空的目錄,也就是目錄下沒有檔案和子目錄才能刪除。
函數CreateDirectory和RemoveDirectory聲明如下:
WINBASEAPI
BOOL
WINAPI
CreateDirectoryA(
__in LPCSTR lpPathName,
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
CreateDirectoryW(
__in LPCWSTR lpPathName,
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
#ifdef UNICODE
#define CreateDirectory CreateDirectoryW
#else
#define CreateDirectory CreateDirectoryA
#endif // !UNICODE
WINBASEAPI
BOOL
WINAPI
RemoveDirectoryA(
__in LPCSTR lpPathName
);
WINBASEAPI
BOOL
WINAPI
RemoveDirectoryW(
__in LPCWSTR lpPathName
);
#ifdef UNICODE
#define RemoveDirectory RemoveDirectoryW
#else
#define RemoveDirectory RemoveDirectoryA
#endif // !UNICODE
lpPathName是目錄的路徑。
lpSecurityAttributes是目錄的安全屬性。
傳回值是執行是否成功。
調用函數的例子如下:
#001 //建立目錄。
#002 //蔡軍生 2007/10/16 QQ:9073204 深圳
#003 std::wstring strDir(_T("c:\\log"));
#004 if (!CreateDirectory(strDir.c_str(),NULL))
#005 {
#006 OutputDebugString(_T("建立目錄不成功\r\n"));
#007
#008 }
#009 else
#010 {
#011 //刪除空目錄。
#012 RemoveDirectory(strDir.c_str());
#013 }
#014
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/caimouse/archive/2007/10/16/1828185.aspx