ShFileOperation函數是Windows系統提供的一個用于執行文件操作的函數,主要用于復制、移動、重命名、刪除等文件操作。
使用ShFileOperation函數的一般步驟如下:
SHFILEOPSTRUCT fileOpStruct;
ZeroMemory(&fileOpStruct, sizeof(SHFILEOPSTRUCT));
fileOpStruct.hwnd = NULL; // 窗口句柄,可以為NULL
fileOpStruct.wFunc = FO_COPY; // 文件操作類型,如復制、移動等
fileOpStruct.pFrom = sourceFile; // 源文件路徑
fileOpStruct.pTo = destFile; // 目標文件路徑
fileOpStruct.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION; // 文件操作標志,如允許撤銷、不顯示確認對話框等
int result = SHFileOperation(&fileOpStruct);
if (result == 0) {
// 文件操作成功
} else {
// 文件操作失敗
}
需要注意的是,ShFileOperation函數只能操作文件,不能操作文件夾。如果需要操作文件夾,可以使用SHFILEOPSTRUCT結構體的fFlags成員中的FOF_FILESONLY標志,限制只對文件進行操作。
此外,ShFileOperation函數還支持批量操作文件,可以將多個源文件路徑和目標文件路徑用空字符(‘\0’)分隔開,例如:
fileOpStruct.pFrom = "sourceFile1\0sourceFile2\0";
fileOpStruct.pTo = "destFile1\0destFile2\0";