C++ の ShFileOperation 関数の使用方法
ShFileOperation関数は、ファイル操作を実行するためにWindowsシステムによって提供される関数です。複製、移動、名前の変更、削除などのファイル操作に主に使用されます。
ShFileOperation関数の一般的な手順は、以下のようにします。
- ファイル操作を実行するパラメータを指定するために使用される SHFILEOPSTRUCT 構造体を定義し、初期化します。
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; // 文件操作标志,如允许撤销、不显示确认对话框等
- ShFileOperation 関数を使用してファイル操作を実行します。
int result = SHFileOperation(&fileOpStruct);
- ファイル操作の成功可否は、戻り値で判断する。
if (result == 0) {
// 文件操作成功
} else {
// 文件操作失败
}
ShFileOperation関数はファイルのみ操作し、フォルダーは操作できません。フォルダーを操作する必要がある場合は、SHFILEOPSTRUCT構造体のfFlagsメンバーでFOF_FILESONLYフラグを使用し、操作をファイルのみに制限します。
さらに、ShFileOperation 関数はファイルのバッチ操作をサポートし、複数のソース ファイル パスとターゲット ファイル パスを NULL 文字(’\0’)で区切って渡すことができます。たとえば、次のようになります。
fileOpStruct.pFrom = "sourceFile1\0sourceFile2\0";
fileOpStruct.pTo = "destFile1\0destFile2\0";