SHFileOperation是一個Windows API函數,用于執行文件和文件夾操作,包括復制、移動、重命名和刪除文件等操作。使用SHFileOperation刪除文件的步驟如下:
hwnd:設置為當前窗口的句柄,一般為NULL。
wFunc:設置為FO_DELETE,表示執行刪除操作。
pFrom:設置為要刪除的文件路徑字符串,以雙null結尾,多個文件路徑之間用null分隔。
pTo:設置為NULL,因為這是刪除操作,不需要指定目標路徑。
fFlags:設置為FOF_ALLOWUNDO | FOF_NOCONFIRMATION,表示允許回收站還原文件,且不顯示確認對話框。
示例代碼如下:
#include <Windows.h>
#include <ShlObj.h>
int main()
{
SHFILEOPSTRUCT fileOp;
memset(&fileOp, 0, sizeof(SHFILEOPSTRUCT));
fileOp.hwnd = NULL;
fileOp.wFunc = FO_DELETE;
fileOp.pFrom = L"C:\\path\\to\\file.txt\0C:\\path\\to\\folder\0\0";
fileOp.pTo = NULL;
fileOp.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
int result = SHFileOperation(&fileOp);
if (result == 0)
{
// 刪除成功
}
else
{
// 刪除失敗,可以通過查看result的值來確定錯誤原因
}
return 0;
}
注意事項:
pFrom參數是一個雙null結尾的字符串,其中多個文件路徑之間用null分隔。
fFlags參數可以根據需要進行調整,例如使用FOF_SILENT來禁止顯示進度對話框。
在刪除文件之前,建議先進行權限檢查,確保當前用戶有足夠的權限進行刪除操作。