web-dev-qa-db-ja.com

フォルダと含まれているファイルを削除する

本当に簡単な質問があります。私のプログラムは実際にZipファイルをダウンロードし、それをデスクトップに抽出します。しかし、そのためのアンインストール機能が必要です。これは、基本的に複数のフォルダーを削除し、ファイルを含んでいることです。 vb.netでこれを行うにはどうすればよいですか?

16
lab12

すべてのフォルダが単一のフォルダに含まれている場合、それはかなり単純なはずです。

Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)

これにより、ルートディレクトリと、その下のすべてのディレクトリとファイルが削除されます。例の「YOURPATH」のように、ファイルとディレクトリがすべて1つのルートディレクトリにない場合は、数回呼び出すだけです。これにより、各ファイルを個別に削除する必要がなくなります。

38
Steve Danner

.NET IOユニットには、トリックを実行できるようにする2つのコマンドがあります。

System.IO.Directory.GetDirectories("C:\\Program Files\\Your Directory\\*.*");
System.IO.Directory.GetFiles("C:\\Program Files\\Your Directory\\*.*");

ディレクトリの名前を取得し、「GetFiles」ルーチンを使用してすべてのファイルを取得し、foreachループでSystem.IO.File.Delete(path)を使用してそれらを削除するメソッドを記述します。次に、関数を再帰的に呼び出すGetDirectories()コマンドの結果に対してforeachループを実行します。

更新:Steve Dannerは、System.IO.Directory名前空間にDeleteメソッドがあるため、ここで説明するループを実行する必要がないことを指摘しています。 彼の答えは正しいものであり、投票する必要があります。この時点では、鉱山は好奇心の強いものです(ただし、賛成票をくれた人に感謝します; 0)。

3

あなたはDirectoryInfoを探しています、それを次のように使用してください:

Dim di As New IO.DirectoryInfo(path)
di.Delete(True)
0
MarianoC