MFC Shell文件操作SHFileOperation函數是一個用于文件操作的函數,它可以實現復制、移動、刪除文件、創建文件夾等操作。下面是一個使用SHFileOperation函數進行文件復制的示例代碼:
#include <afx.h>
#include <afxwin.h>
#include <Shlobj.h>
#include <ShellAPI.h>
int main()
{
// 初始化MFC
AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
// 設置操作參數
SHFILEOPSTRUCT fileOp;
ZeroMemory(&fileOp, sizeof(fileOp));
fileOp.wFunc = FO_COPY;
fileOp.pFrom = _T("C:\\Path\\To\\SourceFile.txt\0"); // 源文件路徑
fileOp.pTo = _T("C:\\Path\\To\\Destination\0"); // 目標文件夾路徑
fileOp.fFlags = FOF_FILESONLY; // 僅復制文件,不復制文件夾
// 執行文件復制操作
int result = SHFileOperation(&fileOp);
// 檢查操作結果
if (result == 0)
{
// 操作成功
AfxMessageBox(_T("文件復制成功"));
}
else
{
// 操作失敗
AfxMessageBox(_T("文件復制失敗"));
}
return 0;
}
在上面的示例代碼中,我們首先調用AfxWinInit函數來初始化MFC。然后,我們定義了一個SHFILEOPSTRUCT結構體,設置了文件操作的參數,包括操作類型、源文件路徑、目標文件夾路徑和標志位。最后,我們調用SHFileOperation函數執行文件復制操作,并根據返回值來判斷操作結果。
需要注意的是,使用MFC Shell文件操作函數需要在程序中包含afx.h、afxwin.h、Shlobj.h和ShellAPI.h這些頭文件,并且需要初始化MFC框架。此外,還需要將編譯選項設置為使用MFC靜態鏈接庫。