So schließen Sie eine Datei, die bereits geöffnet ist, in ein Verzeichnis

Ich versuche zu analysieren, einen Ordner und löschen Sie alle Dateien in es.

DirectoryInfo dir = new DirectoryInfo("C\\Temp");
if (dir.GetDirectories().Any(p => p.Name == "\\NewTemp"))
{
    foreach (string file in Directory.GetFiles(dir + "\\NewTemp"))
    {
        File.SetAttributes(file, FileAttributes.Normal);
        File.Delete(file);
    }
}

Dieser code funktioniert einwandfrei und löscht alle Dateien in meinem \NewTemp Ordner. Aber wenn eine der Dateien öffnet diese Dateien nicht gelöscht werden. Ich möchte forecfully schließen Sie die Dateien, die geöffnet sind, und löschen Sie Sie. Ich habe sogar versucht

foreach (string file in Directory.GetFiles(dir + "\\NewTemp"))
{
    TextReader tr = new StreamReader(dir+"\\NewTemp\\"+file);
    tr.Close();
    File.SetAttributes(file, FileAttributes.Normal);
    File.Delete(file);
}

Aber keine Verwendung. Bitte lassen Sie mich wissen, wo ich bin, fehlt.

was ist tr doin es
Ich bin mir ziemlich sicher, dass es diesen Befehl Linie Dienstprogramm, die Sie verwenden können, um alle Prozesse, die eine bestimmte Datei öffnen, und ich bin mir auch ziemlich sicher, dass Sie taskkill diese Prozesse von c#
tr versucht, die Datei zu schließen TextReader tr = new StreamReader(Datei). Ich habe einen Tippfehler gemacht
stackoverflow.com/questions/177146/... Es ist nicht zu einfach mit managed code. In dieser Antwort gibt es einen link zu einem proget auf Codeproject, die Ihnen helfen können.

InformationsquelleAutor Sneha S Murthy | 2012-10-04

Schreibe einen Kommentar