Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

24.08.2011, 19:09

Alle Dateien in einem Verzeichnis umbenennen

Wie benennt man alle Dateien von einem bestimmten Typen in einem Verzeichnis um?
Mit C# habe ich das hier gefunden:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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);
    }
}


Ich brauch das alles aber in C++, schaut aber umwandelbar aus. Eigentlich fehlen mir nur die Funktionen, wenn ich da so ansehe.
Ich benötige das für das laden von Musikdateien in mein Spiel, durch das umbenennen müsste man sie nur im Ordner einfügen und das war´s.

MfG
Check

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

24.08.2011, 19:15

Nachdem du sie umbenannt hast kannst du sie aber nichtmehr unterschieden. Lies doch einfach den Ordner aus und speicher jeden Dateinamen in eine Liste. Dann kannst du sie auch einfach hinzufügen.
Hab ich auch schon gemacht(mal gucken wo der Code liegt)

edit: Fürs Laden von Spielerprofilen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using namespace boost::filesystem;

bool Profiles::updateAvailableProfiles()
{
    m_ProfileNames.clear();

    if (!exists(m_Directory))
        return false;
    for (directory_iterator it(m_Directory); it != directory_iterator(); ++it)
    {
        std::string filename = it->filename();
        std::string::size_type dotposition = filename.find_last_of('.');
        if(dotposition != std::string::npos)
        {
            std::string extension = filename.substr(dotposition, m_FileExtension.size());
            if(extension == m_FileExtension)
                m_ProfileNames.push_back(filename.substr(0, dotposition));
        }
    }
    return m_ProfileNames.size() != 0;
}


Dürfte sich übertragen lassen :D

Wenn du sie doch umbenennen willst lässt sich der Code sicher auch anpassen...
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

3

24.08.2011, 19:20

Warum nicht mehr unterscheiden? Das will ich gar nicht.
Es soll einfach zu einer zahl umbenannt werden und fertig, die "soll" man nicht unterscheiden können.
Im Spiel wird dann mit Pfeil oben/unten geblättert, und wer fügt schon Songs hinzu die einer nicht mal kennt? :lol:
Trotzdem Danke, der Code ist auf andere Weise hilfreich. *g*

MfG
Check

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

24.08.2011, 19:51

Also ich hätte schon gerne, dass mein Player auch die Namen der Songs anzeigt, sonst muss ich ja ewig blättern um einen Song zu finden(dazu immer noch kurz reinhören), und besonders meine Dateien nicht ändert. Wenn ein Spieler das nicht weiß und seine Musik verschiebt darf er nachher alle Dateien neu benennen.

Was spricht denn dagegen die Namen zu speichern?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

5

24.08.2011, 21:33

Das ich den Interpreten und den Titel aus der Information der Datei nehmen will.
Mit 1.mp3, 2.mp3, 3.mp3, ... Komme ich besser klar, als unbekannte Dateinamen zu laden, in einer unbekannten Menge nur um den Dateinamen anzuzeigen.

MfG
Check

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

6

24.08.2011, 21:39

Quellcode

1
2
3
4
für jede [DATEI] in [ORDNER]
   ist [DATEI] eine [mp3] ?
      ja: füge [DATEI] in [LISTE] ein
nächste


Jetzt hast du den gleichen ausgangspunkt wie mit deiner 1.mp3, 2.mp3 nummeriung. Nämlich eine Liste mit Dateinamen...

7

24.08.2011, 21:43

Ich weiß, die Idee hatte ich auch schon.
Mir fehlen nur einfach die ganzen Funktionsnamen und Google kotzt mein Futter wieder aus und es kommt Brei raus.
Ich weiß nicht wie ich Abfrage wie viele Dateien darin sind, ob die Datei eine MP3-Datei ist, usw.
Ist mir fast schon peinlich. xD

MfG
Check

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

8

24.08.2011, 21:45

Ähm den Code hat NachoMan doch gepostet !?

Und ich seh grad, dass das auch fast mein Pseudocode ist...

9

24.08.2011, 21:46

Der ist doch aber mit Boost.
Geht das nicht auch mit WinAPI oder SFML (<-Wohl eher weniger :D) oder Marke Eigenbau?

MfG
Check

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

24.08.2011, 21:47

1
2
3
4
und 5

Werbeanzeige