C#で指定したパス内のすべてのファイルとフォルダーを削除する方法
はじめに
C#では、System.IO 名前空間を利用することで、指定したパス配下のすべてのフォルダーとファイルを簡単に削除できます。特に DirectoryInfo クラスを使うと、ディレクトリ内のサブディレクトリやファイルの詳細情報を取得できるため、一括削除処理の実装に便利です。
サンプルコード
ここでは、「Demo」というディレクトリの中に2つのサブディレクトリといくつかのファイルが存在する場合を例に説明します。
using System.IO;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
DirectoryInfo di = new DirectoryInfo(@"D:\Demo");
foreach (DirectoryInfo dir in di.GetDirectories()) {
foreach (FileInfo file in dir.GetFiles()) {
file.Delete();
}
dir.Delete(true);
}
}
}
}実行結果
上記のコードを実行すると、Demoディレクトリ内のすべてのフォルダーと、それぞれに関連付けられたファイルが完全に削除されます。
コードの解説
このプログラムの動作は以下の通りです。
- GetDirectories():ルートディレクトリ(Demo)直下にあるすべてのサブディレクトリを取得します。
- GetFiles():各サブディレクトリ内に存在するすべてのファイル(Demo File 1、Demo File 2など)を取得します。
- file.Delete():取得した各ファイルを個別に削除します。
- dir.Delete(true):引数に
trueを渡すことで、サブディレクトリを再帰的に(中身ごと)削除します。
注意点
実際の開発では、対象のディレクトリが存在しない場合に DirectoryNotFoundException が発生する可能性があるため、事前に di.Exists プロパティで存在確認を行うか、try-catchによる例外処理を組み合わせておくと安全です。また、削除操作は元に戻せないため、本番環境で実行する前には十分なテストを行うことをおすすめします。
-
Windows 10のエクスプローラーで最近使ったファイルとフォルダーの履歴を消去する方法
クイックアクセスとはWindows 10のエクスプローラー(ファイルエクスプローラー)には「クイックアクセス」という機能があり、最近使用したファイルやよく使うフォルダーの履歴が自動的に記録されます。この画面から頻繁にアクセスする場所へ素早く移動できるため、昨日開いたファイルを探すためにディレクトリ構造を何層もたどる必要がなくなります。履歴を消去する手順クイックアクセスは便利な機能ですが、履歴を一度リセットして最初からやり直したい場合もあるでしょう。その場合は、以下の手順で簡単に消去できます。まず、エクスプローラーを開いて「ファイル」メニューをクリックし、「フォルダーと検索オプションの変更」を選
-
Androidスマホでファイルやフォルダを非表示にする方法|名前の先頭に「.」を付けるだけの簡単テクニック
「プライバシーは生まれながらにして持つ権利である」。私たちには、スマートフォンやパソコンの中にあるファイルやフォルダを他人に見られないように隠す権利があります。法律に触れるものでない限り、何かを秘密にしておくこと自体は決して悪いことではありません。 この記事では、Androidスマートフォンでファイルやフォルダを非表示にする方法を詳しく解説します。なお、写真を隠したい場合やアプリそのものを隠したい場合は、それぞれ別の方法が必要になるので注意してください。 隠せるファイルは、画像・ドキュメント・音声・動画など何でも構いません。もちろん、端末にロックをかけたり、フォルダにパスワード保護を設定したり