wie kann ich ein file mit c in ein subverzeichnis verschieben???



  • hallo,

    habe versucht ein file
    von einem pfad in ein subverzeichnis zu
    verschieben - leider jedoch ohne erfolg :-((
    hab auch schon mit rename versucht, doch
    da stürzt mir leider das programm ständig ab :-((
    in c_file.name steht der dateiname, der ins
    unterverzeichnis von \\neededpics\\ verschoben werden soll.

    char zielfile[500];
        strcpy(zielfile,strcat("\\neededpics\\",c_file.name));
        rename(c_file.name,zielfile);
    

    kann mir jemand kurzfristig helfen???
    einen "move"-befehl in c scheint es ja leider nicht zu geben :-((



  • das erste Argument von strcat ist bei dir eine Konstante ... keine gute Idee



  • warum denn??
    das subverzeichnis ist doch eine konstante.
    nur das zu verschiebende file ist eine variable.

    sagt bloß, hierfür gibts keine lösung??

    gruß



  • ach ja:
    mir würde auch eine "kopie" des files c_file.name
    ins subverzeichnis reichen - löschen von files,
    das kann ich!



  • du solltest dir angewöhnen, nur Funktionen zu benutzen, deren Bedeutung du verstehst. strcat kopiert den String auf den das zweite Argument zeigt an das Ende des Strings, der durch das erste Argument angezeigt wird.

    Mit anderen Worten, es geht davon aus, dass das erste Argument in schreibbaren Speicher zeigt (bei dir nicht) und dass nach dem Ende noch genügend Platz für den zweiten String übrig ist. Andernfalls fliegen dir Dämonen aus der Nase.



  • 🙂 mhhhh - ok, danke für die "Rüge" 🙂
    und vor allem für die auch für mich verständliche
    erklärung!!!
    kannst du mir (bin wirklich noch ein newbie)
    denn auch einen verbesserungsvorschlag machen?
    vielleicht in form von 'nem quellcode.
    würde mir wirklich viel weiterhelfen!



  • char zielfile[500] = "\\neededpics\\"; // verstecktes strcpy
    strcat(zielfile, c_file.name);
    rename(c_file.name, zielfile);
    


  • hi nochmal,

    ok - vielen dank für die berichtigung und auch für den
    quellcode - allerdings erfüllt nun doch nicht wie
    vorher alle gemeint haben die rename-funktion einem
    kopieren des einen files in ein unterverzeichnis.
    jedenfalls funktionierts leider nicht 😞



  • hab ich nie versucht, ich kann mir auch schlecht vorstellen, dass es unter Windows funktioniert. Unter Unix auf jeden Fall, da gibst ja auf OS-Ebene gar kein rename, sondern nur move, also ist rename damit implementiert.



  • nach x-maligen versuchen bin ich zu folgendem schluss gekommen:

    habe win xp und seltsamerweise funktioniert
    die rename-funktion nur, wenn man das
    compilierte programm (also die .exe) dann auch
    in das verzeichnis legt von dem es verschieben soll
    und zudem auch von dort aus direkt ausgeführt wird.

    😞
    ich glaube ich will unix 😉
    gruß + gut nacht



  • unter unix ist das auch nicht anders.


Anmelden zum Antworten