2017-10-01 2 views
-4

Ich habe ein Problem in C# beim Versuch, das Verzeichnis zu löschen (C:\Users\Terry\AppData\Local\Temp).Benötigen Sie Hilfe beim Löschen von Temp-Verzeichnis universal

Dies ist mein aktueller Code:

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); 
    } 
} 

Dieser Code nicht für mich arbeiten. Ich bin ziemlich neu in C# und ich bin nicht vertraut mit dem Löschen von Verzeichnissen. Kann jemand helfen?

+1

Das ist ganz faul. Offensichtlich haben Sie die Dokumentation nicht gelesen, aber Sie haben nicht einmal gelesen, was Sie geschrieben haben. Was denkst du 'File.Delete'? –

+1

Scheint wie es sollte eine Methode oder zwei in NET sein, um diese Ordnernamen für uns zu bekommen. – Plutonix

+0

'Path.GetTempPath()' gibt Ihnen den genauen Pfad, nach dem Sie suchen. Es lohnt sich auch, 'Environment.GetSpecialFolderPath()' zu betrachten, um andere spezielle Ordner zu erhalten. Aber wenn Sie das Verzeichnis und alle seine Dateien/Unterordner löschen wollen, sollten Sie 'dir.Delete (true)' aufrufen. Wenn Sie die Dateien iterieren, ist es besser 'di.EnumerateFiles()' zu verwenden, da Sie bereits eine 'DirectoryInfo' haben. Oder zumindest "di.FullName" anstelle von "ToString()" verwenden, da ein bekanntes Problem mit 'ToString()' an einem 'DirectoryInfo'-Objekt auftritt, das über die 'Parent'-Eigenschaft abgerufen wird und nur den Namen zurückgibt – pinkfloydx33

Antwort

2

Mithilfe der File.Delete-Methode wird versucht, eine Datei zu löschen. Sie möchten, dass die Methode Directory.Delete ein Verzeichnis löscht.

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

Auch, wenn Sie temporäre Dateien oder ein Verzeichnis erstellen, ist es viel besser Path.GetTempPath() Methode zu verwenden. Dies funktioniert in allen Windows-Versionen und berücksichtigt alle Umgebungsvariablen, die der Benutzer festgelegt hat.

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

-1

Ich glaube, Sie suchen

string path = Path.Combine(@"C:\Users", Environment.UserName, @"AppData\Local\Temp"); 
Directory.Delete(path, true); 
Verwandte Themen