Feedback

C# - Alle Dateien in einem Ordner umbennen

Veröffentlicht von am 10/13/2009
(2 Bewertungen)
Dieses Snippet dient lediglich dazu, alle Dateien in einem Ordner in ein bestimmtes Schema umzubennen.

Kleiner Tipp für C# Anfänger:
if (this.folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
this.path = folderBrowserDialog.SelectedPath;
}

Mit diesem Code könnt ihr in einer Windowsanwendung den Pfad per FolderBrowserDialog auslesen.
private void umbennen(string path)
{
    // Alle Datainamen aus dem Ordner auslesen und in ein Stringarray speichern
    string[] files = Directory.GetFiles(path);
    for (int i = 0; i < files.Length; i++)
    {

        string tmp = Path.GetFileName(files[i]);
        // Auffüllen der der Stringlänge ( hier auf 9 zeichen mit nullen )
        tmp = tmp.PadLeft(9, '0');
        // Datei umbennen
        File.Move(files[i], this.path + "\\" + tmp);
    }
}
Abgelegt unter Ordner, Dateien, auslesen, umbennen.

4 Kommentare zum Snippet

Schamash schrieb am 6/2/2017:
Ich würde da eher ein foreach nutzen, das ist kürzer und einfacher zu lesen.
private void umbennen(string path)
{
foreach (String orgFile in Directory.GetFiles(path))
{
string tmpName = Path.GetFileName(orgFile);
// Auffüllen der der Stringlänge ( hier auf 9 zeichen mit nullen )
tmpName = tmpName.PadLeft(9, '0');
// Datei umbennen
File.Move(orgFile, path + "\\" + tmpName);
}
}
Martin Dauskardt schrieb am 6/2/2017:
Ich finde, eine Iteration ist eine gute Wahl. Ziehe ich persönlich einer Enumeration vor. Was mir fehlt ist ein wenig Exception-Handling. Thema: IO-Zugriffsberechtigung etc
Schamash schrieb am 6/2/2017:
@Martin, ich verstehe den ersten Teil deiner Aussage nicht. Beide Snipplets arbeiten mit Iteration.
Martin Dauskardt schrieb am 6/2/2017:
foreach arbeitet nur mit Elementen, welche IEnumerable implementieren.

Schau hier: https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/keywords/foreach-in

Iterationen sind oftmals performanter, haben ein definiertes Ende und einen schönen Index. Ist aber Geschmacksache.
 

Logge dich ein, um hier zu kommentieren!