Windows の一時ファイルや MSN キャッシュ ファイルなど、定期的に削除するいくつかのファイルを空にするために、このコードを作成しました。
コード1
新しいパスを追加して、DeleteContains メソッドを簡単に適用できます。パスをリストに追加するだけです。
コード2
必要なだけパスを追加することはできず、パスごとに新しい文字列の配列と新しいループも作成する必要があります
とにかく、code1 を使用して、フォルダーとその内容ではなく、フォルダーの内容を削除しますか??
code1 の foreach で code2 として機能するように回避する方法はありますか??
一部のフォルダーは削除される可能性があるため、それらを削除すると一部のアプリで問題が発生し、アプリが再び機能しなくなります
"C:\Users\user\AppData\Local\Temp"
他のフォルダはMSNキャッシュのように問題なく削除できます
"C:\Users\user\AppData\Local\Microsoft\Windows Live\Contacts"
コード1
private void Clear_Click(object sender, EventArgs e)
{
List<DirectoryInfo> FolderToClear = new List<DirectoryInfo>();
// here is a list of files I want to delete
FolderToClear.Add(new DirectoryInfo("path1"));
FolderToClear.Add(new DirectoryInfo("path2"));
FolderToClear.Add(new DirectoryInfo("path3"));
FolderToClear.Add(new DirectoryInfo("path4"));
foreach (DirectoryInfo directory in FolderToClear)
{
directory.Delete(true);
}
}
コード2
private void DeleteContents(string Path)
{
string[] DirectoryList = Directory.GetDirectories(Path1);
string[] FileList = Directory.GetFiles(Path1);
foreach (string xin FileList)
{
File.Delete(x);
}
foreach ( string x in DirectoryList)
{
Directory.Delete(x, true);
}
}