MFCでの CShFileOperation の使い方
MFC(マイクロソフトファウンデーションクラス)はC++のクラスライブラリで、Windowsアプリケーションの開発に使用されます。 SHFileOperationはMFCの関数で、ファイルやフォルダーのコピー、移動、リネーム、削除などのファイル操作を実行するために使用されます。
まず SHFILEOPSTRUCT 構造体のオブジェクトを作成し、そのメンバ変数の値を設定して準備します。その後、SHFileOperation 関数を呼び出し、このオブジェクトをパラメータとして渡します。関数の処理が完了すると、戻り値から操作が成功したかどうかを確認できます。
ファイルのコピー操作でSHFileOperation関数をどのように使用するかを示すサンプルコードを次に示します。
#include <afx.h>
#include <Shlwapi.h>
int main()
{
// 初始化MFC
AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
// 创建SHFILEOPSTRUCT结构体对象
SHFILEOPSTRUCT fileOp;
ZeroMemory(&fileOp, sizeof(SHFILEOPSTRUCT));
// 设置成员变量的值
fileOp.wFunc = FO_COPY; // 复制操作
fileOp.pFrom = _T("C:\\source.txt"); // 源文件路径
fileOp.pTo = _T("C:\\destination.txt"); // 目标文件路径
fileOp.fFlags = FOF_NOCONFIRMATION; // 不显示确认对话框
// 执行文件复制操作
int result = SHFileOperation(&fileOp);
if (result == 0)
{
// 操作成功
MessageBox(NULL, _T("文件复制成功!"), _T("提示"), MB_OK);
}
else
{
// 操作失败
MessageBox(NULL, _T("文件复制失败!"), _T("提示"), MB_OK);
}
return 0;
}
上記サンプルでは、source.txtファイルをdestination.txtファイルにコピーし、コピーが成功した場合「ファイルの複製に成功しました!」というメッセージの入ったメッセージボックスを表示します。コピーが失敗した場合、「ファイルの複製に失敗しました!」というメッセージの入ったメッセージボックスを表示します。
SHFileOperation関数はShlwapi.libとリンクする必要があります。必要に応じて、SHFILEOPSTRUCT構造体の他のメンバー変数を設定して、さまざまなファイル操作機能を実現することもできます。詳細なパラメーターと使用法については、関連ドキュメントまたはヘッダーファイル宣言を参照してください。