MoveFile mit strings funktioniert nicht
-
Hallo zusammen,
ich würde gern ein .txt file mit MoveFile verschieben aber irgendwie mache ich was falsch. Der Compiler spuckt mir zwar kein Fehler aus aber die Datei wird nicht verschoben. Ich weiß wirklich nicht mehr weiter habe seit stunden schon nach dem Problem im Internet geschaut aber wahrscheinlich irgendwas übersehen etc. I dont know.
Hier der Code:#include <iostream>
#include <windows.h>using namespace std;
int main()
{string newpath = "%localappdata%\\temp\\log.txt"; string oldpath = "c:\\users\\test\\desktop\\"; MoveFile(oldpath.c_str(), newpath.c_str()); system("pause"); return 0;
}
Schon mal vielen Dank für eure Hilfe.
-
@sandwichmaker sagte in MoveFile mit strings funktioniert nicht:
%localappdata%
Das musst du selbst durch die entsprechende Umgebungsvariable ersetzen - oder sowas wie https://docs.microsoft.com/de-de/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath verwenden.
PS: MoveFile liefert auch einen Fehlercode und du kannst ihn vermutlich mit GetLastError oder so detaillierter holen.
-
- Das was @wob geschrieben hat. Dazu noch ein Tip: https://docs.microsoft.com/en-us/windows/win32/api/processenv/nf-processenv-expandenvironmentstringsa
- Dein "oldpath" ist ein Verzeichnis, dein "newpath" sieht eher nach einem Filenamen aus. So wird da kein Schuh draus. Ich schätze mal du hast die beiden vertauscht. Aber selbst dann passt es noch nicht, da du nicht das Ziel-Verzeichnis sondern den gesamten Ziel-Pfad angeben musst.
-
Ja genau das war auch mein Fehler was ich dann erst später durch die ausgabe von GetLastError mitbekommen habe. Nun ist der Ziel-Pfad korrekt und es funktioniert. Vielen Dank