Laden...

Alle Dateien in verschiedenen Ordnern umbennen

Erstellt von wwAlex vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.348 Views
W
wwAlex Themenstarter:in
8 Beiträge seit 2016
vor 7 Jahren
Alle Dateien in verschiedenen Ordnern umbennen

Hallo 🙂

Ich habe folgendes Problem.
Ich habe einen Ordner indem 2 Unterordner sind. (Bspl.: Am Desktop ist ein Ordner Test, indem Ordner Test sind 2 Ordner namens Test1 und Test2) In diesen Unterordnern sind beliebig viele Dateien. Mein Problem ist, dass ich es nicht schaffe, dass alle Dateien in den 2 verschiedenen Ordnern zeitgleich umbenannt werden, da ich soweit ich weiß den Pfad angeben muss. Hat da wer einen Ansatz für mich? ?( 🙁
Tut mir leid falls ich mich unverständlich ausgedrückt habe^^

Danke & LG

Y
102 Beiträge seit 2005
vor 7 Jahren

Hallo,

Absolut zeitgleich wird nicht funktionieren da das umbenennen immer ein paar ms dauern wird.

Aber du kannst dir die Inhalte (Dateien) der Ordner auslesen. Somit bekommst du die Pfade zu den Dateien.

Sieh dir dazu die Klasse DirectoryInfo an.

W
wwAlex Themenstarter:in
8 Beiträge seit 2016
vor 7 Jahren

Ok ich wollte nur wissen ob jemand eine Tipp hat, ob es geht nicht 2 mal den Pfad angeben zu müssen.
Also statt
C:\Ordner\Unterordner1
C:\Ordner\Unterordner2

vielleicht
C:\Ordner\

da ich versuche nicht den ganzen Code einfach zu kopieren und 2 mal auszuführen ^^

1
124 Beiträge seit 2012
vor 7 Jahren

Wie Yeats schon sagte:

Sieh dir dazu die Klasse DirectoryInfo an.

Mit Link: DirectoryInfo-Klasse

noch konkreter wie du die Dateipfade holen kannst:
DirectoryInfo.GetFiles-Methode

Hinweis von gfoidl vor 7 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 3.1

W
wwAlex Themenstarter:in
8 Beiträge seit 2016
vor 7 Jahren

Okay danke ich werde es mir anschauen 😄

M
2 Beiträge seit 2015
vor 7 Jahren

Hi,

falls du es noch nicht rausgefunden hast...
So könnte es aussehen


        static void Main(string[] args)
        {
            //Pfad, dessen Inhalt umbenannt werden soll
            string path = @"C:\Ordner";

            //Alle Dateien aus dem aktuellen Verzeichnis und aus Unterordner auslesen
            //Searchpattern bsp.: "*" = Alle Dateien / "*.jpg" = Nur Dateien mit der Endung .jpg
            var files = Directory.GetFiles(path, "*.jpg", SearchOption.AllDirectories);

            foreach (var file in files)
            {
                FileInfo fileInfo = new FileInfo(file);

                //Ordner der aktuellen Datei
                string folder = Directory.GetParent(file).FullName;

                //Da es im Standard kein File.Rename gibt...
                File.Move(file, folder + "\\Präfix_" + fileInfo.Name.ToLower());
            }
        }

1.040 Beiträge seit 2007
vor 7 Jahren

@MAvEE:
Für Pfadoperationen immer die Path-Klasse nutzen. =)
(Und das .ToLower weglassen, hat hier keinen Sinn 😉)

57 Beiträge seit 2012
vor 7 Jahren

Das ist ja der Sinn der Objekt-Orientierung! Schreib dir doch selbst ne statische Klasse!

  • die Methode bekommt einen String fürs Basisverzeichnis
  • daraus suche sie alle Subordner und speichert diese in einem String-Array
  • und nun noch ne Methode, welche in ner Schleife das Array durchläuft

und schon hast du alles selbst geschafft!!! Und kannst die Klasse sogar verkaufen!

OO gibts seit Platon - hatte der auch C#?