c# Windowsでファイルを削除せずにゴミ箱に入れる方法

ファイルを削除したいときもあれば、あとで復元させやすいようにするために、ゴミ箱に入れておきたいときもあります。

この記事では、c#でファイルを削除せずにゴミ箱に入れる方法を紹介します。

1. サンプルコード

サンプルコード全文は以下のとおりです。

using System;
using Microsoft.VisualBasic.FileIO;

namespace sendtorecycle
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            SendToRecycleBin("test.txt");
        }

        static void SendToRecycleBin(string filepath)
        {
            FileSystem.DeleteFile(filepath, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
        }
    }
}

このコードのポイントは、名前空間「Microsoft.VisualBasic.FileIO」にあるFileSystem.DeleteFileメソッドです。

2. メソッド説明

公式ドキュメントはこちらです。

FileSystem.DeleteFile Method (Microsoft.VisualBasic.FileIO)
Deletes a file.

DeleteFileメソッドは3つのパラメタを入力にします。

public static void DeleteFile (string file, Microsoft.VisualBasic.FileIO.UIOption showUI, Microsoft.VisualBasic.FileIO.RecycleOption recycle);

1つ目は、ゴミ箱に入れるファイルのパスです。上記のサンプルコードでは、カレントディレクトリにあるtest.txtを対象にしています。

2つ目は、ユーザーインタフェースの表示おオプションです。ここでは、エラーがあったときのみ表示するUIOption.OnlyErrorDialogsをセットしています。

3つ目は、ゴミ箱に入れるかどうかのオプションです。RecycleOption.SendToRecycleBinだと、ゴミ箱に入ります。ここをRecycleOption.DeletePermanentlyとすると、ゴミ箱に入らず、完全に削除されます。

3. 実行例

このように、カレントディレクトリに「test.txt」が存在するとします。

そして、dotnet runコマンドで実行します。

すると、以下のようにゴミ箱に入れば成功です。

おすすめ本 c#コードレシピ集

c#コードレシピ集は、「文字列を大文字あるいは小文字に変換したい」や「Taskをキャンセルしたい」など逆引き的にコードの書き方を調べられるレシピ集です。

2021年8月に発売された本で、全部で385個のレシピが収録されています。

ジャンルは日付処理やLINQ、並列処理と非同期処理など幅広く記載されています。

Kindle対応ですので、まずはサンプルをダウンロードして何が書かれているか確認してはいかがでしょうか。

コメント

タイトルとURLをコピーしました