私は本当に簡単な質問があります。私のプログラムは実際に zip ファイルをダウンロードし、それをデスクトップに展開します。しかし、基本的に複数のフォルダーを削除し、ファイルを含むアンインストール機能が必要です。vb.netでこれを行うにはどうすればよいですか?
4 に答える
すべてのフォルダーが 1 つのフォルダーに含まれている場合は、非常に簡単です。
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)
これにより、ルート ディレクトリとその下のすべてのディレクトリとファイルが削除されます。例の「YOURPATH」のように、ファイルとディレクトリがすべて単一のルート ディレクトリにない場合は、これを数回呼び出すことができます。これにより、各ファイルを個別に削除する必要がなくなります。
.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)。
DirectoryInfo を探している場合は、次のように使用します。
Dim di As New IO.DirectoryInfo(path)
di.Delete(True)
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)