SHFileOperation是一個函數(shù),用于執(zhí)行文件操作,如復制、移動、重命名、刪除等。它可以在Windows操作系統(tǒng)的命令行或批處理腳本中使用。
函數(shù)原型如下:
int SHFileOperation(
LPSHFILEOPSTRUCT lpFileOp
);
lpFileOp參數(shù)是一個指向一個SHFILEOPSTRUCT結(jié)構(gòu)的指針,該結(jié)構(gòu)包含了執(zhí)行文件操作時所需的信息,如源文件路徑、目標文件路徑、操作類型等。
要使用SHFileOperation函數(shù),首先需要初始化SHFILEOPSTRUCT結(jié)構(gòu),并設置相應的參數(shù)。以下是一個示例:
SHFILEOPSTRUCT fileOp;
ZeroMemory(&fileOp, sizeof(SHFILEOPSTRUCT));
fileOp.hwnd = NULL; // 窗口句柄,可以為NULL
fileOp.wFunc = FO_COPY; // 操作類型,如復制、移動、重命名等
fileOp.pFrom = L"C:\\source.txt"; // 源文件路徑
fileOp.pTo = L"C:\\target.txt"; // 目標文件路徑
fileOp.fFlags = FOF_NOCONFIRMATION; // 操作選項,如不顯示確認對話框
int result = SHFileOperation(&fileOp);
if (result == 0) {
// 文件操作成功
} else {
// 文件操作失敗,可以通過調(diào)用GetLastError()獲取錯誤代碼
}
在示例中,設置了窗口句柄為NULL,操作類型為復制,源文件路徑為"C:\source.txt",目標文件路徑為"C:\target.txt",并且設置了不顯示確認對話框的選項。最后調(diào)用SHFileOperation函數(shù)執(zhí)行文件操作。操作成功時返回0,失敗時返回非零值。
注意:SHFileOperation函數(shù)是一個同步操作,即它會阻塞當前線程,直到操作完成。如果需要異步執(zhí)行文件操作,可以考慮使用SHFileOperationAsync函數(shù)。