MFC(Microsoft Foundation Classes)是一個C++類庫,用于開發(fā)Windows應(yīng)用程序。SHFileOperation是MFC中的一個函數(shù),用于執(zhí)行文件操作,例如復(fù)制、移動、重命名和刪除文件和文件夾。
使用SHFileOperation函數(shù),首先需要創(chuàng)建一個SHFILEOPSTRUCT結(jié)構(gòu)體對象,并設(shè)置其成員變量的值。然后調(diào)用SHFileOperation函數(shù),將這個結(jié)構(gòu)體對象作為參數(shù)傳遞給函數(shù)。函數(shù)執(zhí)行完畢后,可以根據(jù)返回值判斷操作是否成功。
下面是一個示例代碼,演示了如何使用SHFileOperation函數(shù)進(jìn)行文件復(fù)制操作:
#include <afx.h>
#include <Shlwapi.h>
int main()
{
// 初始化MFC
AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
// 創(chuàng)建SHFILEOPSTRUCT結(jié)構(gòu)體對象
SHFILEOPSTRUCT fileOp;
ZeroMemory(&fileOp, sizeof(SHFILEOPSTRUCT));
// 設(shè)置成員變量的值
fileOp.wFunc = FO_COPY; // 復(fù)制操作
fileOp.pFrom = _T("C:\\source.txt"); // 源文件路徑
fileOp.pTo = _T("C:\\destination.txt"); // 目標(biāo)文件路徑
fileOp.fFlags = FOF_NOCONFIRMATION; // 不顯示確認(rèn)對話框
// 執(zhí)行文件復(fù)制操作
int result = SHFileOperation(&fileOp);
if (result == 0)
{
// 操作成功
MessageBox(NULL, _T("文件復(fù)制成功!"), _T("提示"), MB_OK);
}
else
{
// 操作失敗
MessageBox(NULL, _T("文件復(fù)制失?。?quot;), _T("提示"), MB_OK);
}
return 0;
}
上述示例中,將source.txt文件復(fù)制到destination.txt文件,如果復(fù)制成功,則彈出一個提示框顯示“文件復(fù)制成功!”;如果復(fù)制失敗,則彈出一個提示框顯示“文件復(fù)制失敗!”。
需要注意的是,SHFileOperation函數(shù)需要鏈接Shlwapi.lib庫才能使用。此外,還可以根據(jù)需要設(shè)置SHFILEOPSTRUCT結(jié)構(gòu)體的其他成員變量,以實(shí)現(xiàn)不同的文件操作功能。詳細(xì)的參數(shù)和用法可以參考相關(guān)文檔或頭文件聲明。