ファイルをゴミ箱に移動

制作: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)
{
  ~;
}

使用条件


免責事項