rename modifizieren



  • mein aufgabe ist :

    😕 Modifizieren Sie „rename“ so, dass alle Dateinamen die für
    eine Datei vergeben wurden, abgerufen werden können. 😕

    kann mir jemand helfen wie ich diese aufgabe lösen kann

    ich weisse nicht wie ich anfangen soll
    alles was ich verstanden habe ist neue Implimentierung der Fkt rename :

    ich habe diese code im Forum gefunden um zu prüfen aber ich weisse nicht wie ich rename implimentieren soll.

    #include <iostream>
    #include <string>
    #include <stdio.h>
    using namespace std;

    int main()
    {
    string name,name2;

    cout<<"Geben Sie den Namen der alten Datei ein: \n";
    cin>>name;
    cout<<"Geben Sie jetzt den neuen Namen ein: \n";
    cin>>name2;

    rename (name,name2);
    }

    danke im voraus



  • Bin mir zwar nicht sicher, ob ich die Fragestellung richtig verstanden hab aber
    ich versuchs mal.
    Du könntest einen vector<pair<string, string> > verwenden,
    wobei pair<string, string> für eine Umbenennung steht:

    typedef std::pair<std::string, std::string> rename_sequence;
    typedef vector<RenameSequence> rename_sequences;
    rename_sequences rs;
    string srcfile, dstfile;
    // Dateinamen einlesen
    // Datei umbenennen
    rs.push_back(rename_sequence(srcfile, dstfile));
    

    So weißt Du in welcher Reihenfolge welche Datei in welche umbenannt wurde.



  • was ich machen soll, ist : die Funktion "rename" selbst implimentieren muss

    rename sieht ja so aus :

    int rename ( const char * oldname, const char * newname );
    

    und ich soll diese Funktion implimentieren so, dass alle Dateinamen die für
    eine Datei vergeben wurden, abgerufen werden können (unter linux),

    das heißt unter Linux wenn ich den Befehl:

    rename altname neuname
    

    (datei umbennenen)
    wird diese datei umbennant, aber dafür behaltet er auch die alte name auch "altname".

    😮 -Erstens ich weisse nicht wie die Funktion rename überhaupt aussieht
    😮 -zweitens ich weisse nicht wie ich es weiter modifiziere.

    unter diese adresse kann man Funktionskopf sehen aber keine Implimentierung
    http://www.cplusplus.com/reference/clibrary/cstdio/rename.html



  • Im Prinzip sollte erstmal geklärt werden wie überhaupt die Datei indiziert werden soll. Sprich wenn ich alle Dateinamen für eine Datei haben will frage ich dann nach dem Dateinamen vom Anfang, nach einer Inode-Nummer oder soll zu jedem Dateinenamen Vorgänger und Nachfolger aufgelistet werden? Kurz die Aufgabe ist für mich nicht vollständig.



  • ich gebe z.b ein beispiel dafür :
    der Befehl rename kann man unter Dos benutzen

    C:\>dir
    ordner1  ordner2  ordner3
    
    C:\>rename ordner1 neuordner
    

    \\ hier wurde die ordner umbennant

    C:\>cd ordner1  
           das system kann den angegebenen Pfad nicht finden.
    

    \\ hier kann ich "ordner1" nicht öffnen weil es umbennant wurde
    aber in aufgabe wenn ich rename implimentiere soll diese ordner
    geöffnen werden obwohl ich der name geändert habe.

    es muss irgend ein container oder wie sie gesagt haben soll zu jedem Dateinenamen Vorgänger und Nachfolger aufgelistet werden.


Anmelden zum Antworten