Datei mit MoveFile umbenennen - Windows directory ermitteln und einsetzen



  • Hallo,
    hab folgendes problemchen
    möchte ne datei im Verzeichnis C:/Windows umbenennen mit dem code:

    MoveFile("C:\\Windows\\datei1.txt", "C:\\Windows\\datei2.txt);
    

    nur möcht ich den C:\\Windows teil so abändern dass zunächst das Installationslaufwerk von Windows ermittelt wird
    hab ich so versucht, will aber nicht ganz funzen:

    string text=getWindowsPath();
    string datei1 = text.c_str() + "\\datei1.txt";
    string datei2 = text.c_str() + "\\datei2.txt";
    MoveFile(datei1.c_str, datei2.c_str);
    

    benutze dev c++ compiler und der sagt immer folgendes:

    invalid operands of types `const char*' and `const char[12]' to binary `operator+'

    ka was das heißen soll, hat anscheinend irgendwas mit den strings zu tun
    falls wer ne idee hat was da falsch is bitte posten

    Danke, LG Flo 😃



  • Versuch's mal mit:

    string datei1 = text + "\\datei1.txt";
    

    Also ohne das ".c_str()". Der operator+() ist für std::string überladen, std::string::c_str() liefert aber einen const char *.

    Stefan.



  • DStefan schrieb:

    Versuch's mal mit:

    string datei1 = text + "\\datei1.txt";
    

    Also ohne das ".c_str()". Der operator+() ist für std::string überladen, std::string::c_str() liefert aber einen const char *.

    Stefan.

    lol, stimmt
    darauf hätt ich au kommen können 🙄
    eine frage hätt ich dann noch
    wenn ichs dann so compiliere:

    string text=getWindowsPath();
    string datei1 = text + "\\datei1.txt";
    string datei2 = text + "\\datei2.txt";
    MoveFile(datei1, datei2);
    

    sagt devc++
    cannot convert `std::string' to `const CHAR*' for argument `1' to `BOOL MoveFileA(const CHAR*, const CHAR*)'

    wie konvertiere ich das?

    danke schonmal 🙂



  • Beim MoveFile Aufruf musst Du dann das c_str() wieder benutzen.
    Simon



  • theta schrieb:

    Beim MoveFile Aufruf musst Du dann das c_str() wieder benutzen.
    Simon

    habs auch mit c_str probiert aber die klammern vergessen 😃
    das wars, danke 🙂



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • könntest auch einfach strcat benutzen 😉


Anmelden zum Antworten