Wie kann ich eine Datei mit C# umbenennen?
Diese Lösung funktioniert nicht, wenn sich die Dateinamen nur in der Groß- und Kleinschreibung unterscheiden. Zum Beispiel Datei.txt und Datei.txt
Wie kann ich eine Datei mit C# umbenennen?
Werfen Sie einen Blick auf System.IO.File.Move die Datei unter einem neuen Namen "verschieben".
System.IO.File.Move("oldfilename", "newfilename");
Diese Lösung funktioniert nicht, wenn sich die Dateinamen nur in der Groß- und Kleinschreibung unterscheiden. Zum Beispiel Datei.txt und Datei.txt
@SepehrM, ich habe es gerade noch einmal überprüft und es funktioniert auf meinem Windows 8.1-Rechner einwandfrei.
Ich bin mir nicht sicher, warum das passiert, aber sehen Sie sich diese Beiträge an: stackoverflow.com/questions/8152731/ y codeproject.com/Tipps/365773/
In der Methode File.Move wird die Datei nicht überschrieben, wenn sie bereits vorhanden ist. Und es wird eine Ausnahme ausgelöst.
Wir müssen also prüfen, ob die Datei existiert oder nicht.
/* Delete the file if exists, else no exception thrown. */
File.Delete(newFileName); // Delete the existing file if exists
File.Move(oldFileName,newFileName); // Rename the oldFileName into newFileName
Oder umgeben Sie es mit einem Try-Catch, um eine Ausnahme zu vermeiden.
Seien Sie sehr vorsichtig mit diesem Ansatz... wenn Ihr Zielverzeichnis und Ihr Quellverzeichnis gleich sind und der "newname" tatsächlich eine Version von "oldFileName" ist, die Groß- und Kleinschreibung beachtet, wird die Datei gelöscht, bevor Sie eine Chance haben, sie zu verschieben.
Sie können auch nicht einfach die Zeichenketten auf Gleichheit prüfen, da es mehrere Möglichkeiten gibt, einen einzelnen Dateipfad darzustellen.
File.Move hat jetzt eine Überladungsmethode, mit der Sie die Datei überschreiben können - File.Move(oldPath, newPath, true)
Sie können verwenden File.Move
um es zu tun.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
2 Stimmen
Ich würde ungern hinzufügen, dass es ein Problem hier alle Lösungen hier vor allem, wenn Sie tun, vergleicht und verschieben die Datei von einem Speicherort zu einem anderen (Verzeichnis sowie Dateiname) insofern, als Sie sollten sich bewusst sein, dass ein Datenträger ein Knotenpunkt sein könnte... also wenn newname ist q: \SomeJunctionDirectory\hello.txt und der alte Name ist c: \TargetOfJunctionPoint\hello.txt... Die Dateien sind identisch, aber die Namen sind es nicht.