C++ の ShFileOperation 関数の使用方法

ShFileOperation関数は、ファイル操作を実行するためにWindowsシステムによって提供される関数です。複製、移動、名前の変更、削除などのファイル操作に主に使用されます。

ShFileOperation関数の一般的な手順は、以下のようにします。

  1. ファイル操作を実行するパラメータを指定するために使用される 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;  // 文件操作标志,如允许撤销、不显示确认对话框等
  1. ShFileOperation 関数を使用してファイル操作を実行します。
int result = SHFileOperation(&fileOpStruct);
  1. ファイル操作の成功可否は、戻り値で判断する。
if (result == 0) {
// 文件操作成功
} else {
// 文件操作失败
}

ShFileOperation関数はファイルのみ操作し、フォルダーは操作できません。フォルダーを操作する必要がある場合は、SHFILEOPSTRUCT構造体のfFlagsメンバーでFOF_FILESONLYフラグを使用し、操作をファイルのみに制限します。

さらに、ShFileOperation 関数はファイルのバッチ操作をサポートし、複数のソース ファイル パスとターゲット ファイル パスを NULL 文字(’\0’)で区切って渡すことができます。たとえば、次のようになります。

fileOpStruct.pFrom = "sourceFile1\0sourceFile2\0";
fileOpStruct.pTo = "destFile1\0destFile2\0";
bannerAds