Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Alle Dateien in verschiedenen Ordnern umbennen
wwAlex
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

Alle Dateien in verschiedenen Ordnern umbennen

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Yeats
myCSharp.de - Member



Dabei seit:
Beiträge: 97
Herkunft: Österreich

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
wwAlex
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

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 ^^
private Nachricht | Beiträge des Benutzers
123thomas
myCSharp.de - Member



Dabei seit:
Beiträge: 125

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von 123thomas am .

Moderationshinweis von gfoidl (14.10.2016 - 14:57:05):

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

private Nachricht | Beiträge des Benutzers
wwAlex
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Okay danke ich werde es mir anschauen :D
private Nachricht | Beiträge des Benutzers
MAvEE
myCSharp.de - Member



Dabei seit:
Beiträge: 2

beantworten | zitieren | melden

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());
            }
        }
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1053

beantworten | zitieren | melden

@MAvEE:
Für Pfadoperationen immer die Path-Klasse nutzen. =)
(Und das .ToLower weglassen, hat hier keinen Sinn )
private Nachricht | Beiträge des Benutzers
CWolle
myCSharp.de - Member

Avatar #avatar-4065.jpg


Dabei seit:
Beiträge: 58
Herkunft: Süddeutschland

beantworten | zitieren | melden

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#?
private Nachricht | Beiträge des Benutzers