ファイルを削除したいときもあれば、あとで復元させやすいようにするために、ゴミ箱に入れておきたいときもあります。
この記事では、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. メソッド説明
公式ドキュメントはこちらです。

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対応ですので、まずはサンプルをダウンロードして何が書かれているか確認してはいかがでしょうか。
コメント