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構造体の他のメンバー変数を設定して、さまざまなファイル操作機能を実現することもできます。詳細なパラメーターと使用法については、関連ドキュメントまたはヘッダーファイル宣言を参照してください。

bannerAds