none
Alle Dateien aus Verzeichniss erfassen RRS feed

  • Frage

  • Hallo

    Ich würde gerne alle Dateien mit einer bestimmten Endung (Bilder) aus einem Verzeichniss erfassen und diese dann umbenennen. Wie kann ich das machen?

    Sonntag, 10. September 2006 10:28

Antworten

  • Hey Thomas,

    du solltest in deinem Source vielleicht oben erstmal den Namespace System.IO einbinden. Das macht alles ein bischen schöner lesbar.

    Du kannst dann über die statische Funktion GetFiles() in der Klasse Directory eine Liste der Dateien ermitteln die in einem Verzeichnis deiner Wahl enthalten sind. Der erste Parameter bestimmt den Pfad, der zweite dann den Dateifilter. Mit "*.jpg" erhälst du z.B. alle JPGs innerhalb dieses Verzeichnisses.

    Zum umbenennen gibts dann die statische Methode Move() der File-Klasse und nimmt als Parameter den alten und dann den neuen Dateinamen.

    Um die die rumfricklerei mit den Pfadangaben zu sparen kannst du die FileInfo-Daten verwenden mit dem Pfad, Dateinamen und Endung bereits sauber getrennt werden.

    // Namespace einbinden
    using System.IO

    // Liste der Files aus dem Verzeichnis auslesen
    string[] dateien = Directory(@"c:\irgendeinpfad", "*.jpg");
    FileInfo dateiinfo;

    // Alle Dateien mit foreach durcheiern
    foreach (string datei in dateien) {

        // Infos in die FileInfos einlesen
        dateiinfo = new FileInfo(datei);

        // Umbenennen
        File.Move(dateiinfo.fullname, dateiinfo.DirectoryName + "neuer Dateiname" + dateiinfo.Extension);
    }


    Das wars auch schon. Du solltest nur darauf achten, dass diese Methoden diverse Exceptions werfen wenn irgendetwas nicht so klar geht. Wenn es also Zugriffsprobleme gibt oder eine Datei möglicherweise schon existiert und solche Dinge...

    Viele Grüße
    Tom
    Mittwoch, 20. September 2006 13:58