ファイルをゴミ箱に移動

制作:KrK (Knuth for Kludge)

情報・ご感想はこちら

KrK's Cracked Text > はしくれコード


環境

ソース


#include <stdio.h>
#include <windows.h>   // Win32API

//-------------------------------------------------
// ファイルをゴミ箱に移動
// 作成 20140210 KrK
// 引数 filename:移動するファイル名
// 戻り値:移動に成功したTRUE、失敗したFALSE
//-------------------------------------------------
BOOL TrashFile(WCHAR filename[_MAX_PATH])
{
    SHFILEOPSTRUCT sfos;              // ファイル操作情報
    INT rc;                           // 処理結果
    WCHAR opFilename[_MAX_PATH + 1];  // 処理ファイル名

    // ファイル名をコピー
    wcscpy_s(opFilename, _MAX_PATH, filename);

    // 最後に終端文字を追加
    opFilename[wcslen(opFilename) + 1] = '\0';

    // ファイル操作情報をセット
    ZeroMemory(&sfos, sizeof(SHFILEOPSTRUCT));
    sfos.hwnd = NULL;
    sfos.wFunc = FO_DELETE;
    sfos.pFrom = opFilename;
    sfos.fFlags = FOF_ALLOWUNDO |     // UNDO可(= ゴミ箱に移動)
        FOF_NOCONFIRMATION |          // 確認メッセージなし
        FOF_SILENT;                   // プログレス非表示

    // ファイル削除
    rc = SHFileOperation(&sfos);

    // 成功したか?
    if (!rc)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

使い方


WCHAR filename[_MAX_PATH];      // ファイル名

// ファイルを削除
BOOL rc = TrashFile(filename);

// ファイル削除失敗
if (rc == FALSE)
{
    ~;
}

使用条件


免責事項