Feedback

C# - Alle Dateien in einem Ordner umbennen

Veröffentlicht von am 13.10.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.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

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 02.06.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 02.06.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 02.06.2017:
@Martin, ich verstehe den ersten Teil deiner Aussage nicht. Beide Snipplets arbeiten mit Iteration.
Martin Dauskardt schrieb am 02.06.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!