2017-10-01 8 views
-4

ディレクトリ(C:\Users\Terry\AppData\Local\Temp)を削除しようとするとC#で問題が発生します。一般的にtempディレクトリを削除する手助けが必要

これは私の現在のコードです:

private void Button1_Click(object sender, EventArgs e) 
{ 
    var dir = new DirectoryInfo("C:\Users\"+ System.Environment.MachineName + "\AppData\Local\Temp"); 
    foreach (var file in Directory.GetFiles(dir.ToString())) 
    { 
     File.Delete(file); 
    } 
} 

このコードは、私のために動作しません。私はC#にはかなり新しく、ディレクトリの削除に慣れていません。誰でも手伝ってくれますか?

+1

を探している。これは全く怠け者だと思います。明らかに文書を読んだことはありませんが、あなたが書いたものを読んだことさえありません。 'File.Delete'はどうしたと思いますか? –

+1

私たちのためにそれらのフォルダ名を取得するには、1つまたは2つのNETが必要です。 – Plutonix

+0

'Path.GetTempPath()'は、正確なパスを指定します。他の特別なフォルダを取得するには 'Environment.GetSpecialFolderPath()'を見る価値があります。しかし、ディレクトリとそのすべてのファイル/サブフォルダを削除する場合は、 'dir.Delete(true)'を呼び出す必要があります。ファイルを繰り返し処理する場合は、既に 'DirectoryInfo'を持っているので、' di.EnumerateFiles() 'を使うのが良いでしょう。または、 'ToString()'の代わりに 'di.FullName'を使用してください。' ToString() 'の名前は' Parent'プロパティを介して取得された 'DirectoryInfo'オブジェクトで呼び出されます。 – pinkfloydx33

答えて

2

File.Deleteメソッドを使用すると、ファイルを削除しようとします。ディレクトリを削除するには、Directory.Deleteメソッドを使用します。

https://msdn.microsoft.com/en-us/library/fxeahc5f(v=vs.110).aspx

一時ファイルやディレクトリを作成している場合にも、Path.GetTempPath()メソッドを使用することがはるかに優れています。これは、すべてのバージョンのWindowsで動作し、ユーザーが設定した環境変数を尊重します。

https://msdn.microsoft.com/en-us/library/system.io.path.gettemppath(v=vs.110).aspx

-1

私はあなたが

string path = Path.Combine(@"C:\Users", Environment.UserName, @"AppData\Local\Temp"); 
Directory.Delete(path, true); 
関連する問題