(1)函數說明
我們很多時候需要在一個目錄下添加一個檔案下或者刪除一個檔案夾。需要用到的API是:
擷取目前的目錄的絕對路徑:
DWORD GetCurrentDirectory( DWORD nBufferLength, LPSTR lpBuffer );
建立特定目錄下的某檔案夾:
BOOL CreateDirectory( LPCSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes );
刪除特定目錄下的某檔案夾:
BOOL RemoveDirectoryA( LPCSTR lpPathName );
其中lpBuffer 是儲存字串路徑的緩衝區,nBufferLength是緩衝區長度;lpPathName是絕對路徑的字串,lpSecurityAttributes是建立檔案夾的安全屬性,可設為NULL。
另有目錄下檔案的操作函數:
刪除檔案,lpFileName是檔案路徑:
BOOL WINAPI DeleteFile(__in LPCTSTR lpFileName);
移動檔案,前參數是源檔案路徑,後參數是目的檔案路徑:
BOOL WINAPI MoveFile(__in LPCTSTR lpExistingFileName, __in LPCTSTR lpNewFileName);
複製檔案,參數同上一樣,bFailIfExists標示目標檔案是否存在:
BOOL WINAPI CopyFile(__in LPCTSTR lpExistingFileName, __in LPCTSTR lpNewFileName, __in BOOL bFailIfExists);
(2)執行個體
方法是設定一個EditBox控制項,按CTRL+W為該控制項添加兩個成員變數,一個是CString變數name,另一個是CEdit變數m_name。另設定兩個按鈕,一個是建立,一個是刪除。兩個按鈕的作業碼如下:
void CWin32applicationDlg::OnCreate()
{
char Buf[256]; //定義路徑儲存緩衝區
::GetCurrentDirectory(256,Buf); //獲得絕對路徑,並儲存在Buf
m_name.GetWindowText(name); //擷取編輯框中的字串,即檔案夾名字並儲存在name
strcat(Buf,"//"); //在路徑後追加/
strcat(Buf,name); //在路徑後追加檔案夾名,成完整絕對路徑
if(CreateDirectory(Buf,NULL)) //如果建立成功
{
MessageBox("檔案夾建立成功");
return;
}
}
void CWin32applicationDlg::OnDelete()
{
char Buf[256];
::GetCurrentDirectory(256,Buf);
m_name.GetWindowText(name);
strcat(Buf,"//");
strcat(Buf,name);
if(RemoveDirectory(Buf)) //如果刪除成功
{
MessageBox("檔案夾刪除成功");
return;
}
}
(3)關於資訊輸出調試函數MessageBox。它帶參數可以帶char*的字串,也可以直接帶CString類型變數。如果想像printf那樣輸出數值資訊,採用如下方式:
int k=3;
CString s;
s.Format("%d",k);
MessageBox(s);