Forum
Tipps
News
Menu-Icon

C++: Dateipfade mit unterordnern ohne Laufwerksbuchstabe angeben – Seite 2

Stimmt, habs gerade ausprobiert, geht nicht.

Wie machen dass eigentlich die Profis?

Wenn ich ein Programm auf CD einlege und es installier, wird es immer ins richtige verzeichniss installiert.


Was ich jetzt machen will: Im Verzeichniss von Anno2070 möchte ich per c++ eine Datei hinzufügen. Das soll aber auf 32 und 64 -bit systemen klappen.

Wie mach ich das jetzt?

habe bis jetzt:

system("xcopy \"Data\\Files\" %ProgramFiles(x86)%\\Ubisoft\\Related Designs\\ANNO 2070");

blos: das funktioniert selbst bei mir nicht. Er sagt, "Unzulässige Parameteranzahl". Liegt wahrscheinlich daran, dass ich die Umgebungsvariable nicht so einfach erweitern kann.  

« Letzte Änderung: 25.06.12, 18:51:17 von Kostnix »

system("xcopy \"Data\\Files\" "%ProgramFiles(x86)%\\Ubisoft\\Related Designs\\ANNO 2070"");

Leerzeichen im Dateinamen wurde nicht abgefangen mit "xx xx"

 

Schade, funktioniert nicht.

Das:
"%ProgramFiles(x86)%\\Ubisoft\\Related Designs\\ANNO 2070"");

wird jetzt nicht in roter Schrift angezeigt, und bei ProgrammFiles steht "Der bezeichner "Programmfiles(x86)" ist nicht definiert". Auch die ganzen "\" werden als fehler markiert.

auf was für einem System, 32 oder 64-bit ?

ich hab Windows 7 Professional x64, von daher müsste es doch eigentlich gehen...
 Hier mal der Log von Visual Studio:

anno installer.cpp(44): error C2065: 'x86': nichtdeklarierter Bezeichner
anno installer.cpp(44): error C2017: Ungültige Escapesequenz
anno installer.cpp(44): error C2017: Ungültige Escapesequenz
anno installer.cpp(44): error C2017: Ungültige Escapesequenz
anno installer.cpp(44): error C2017: Ungültige Escapesequenz
anno installer.cpp(44): error C2065: 'Ubisoft': nichtdeklarierter Bezeichner
anno installer.cpp(44): error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'Related'
anno installer.cpp(44): error C2017: Ungültige Escapesequenz
anno installer.cpp(44): error C2017: Ungültige Escapesequenz
anno installer.cpp(44): error C2059: Syntaxfehler: ')'
anno installer.cpp(44): error C3861: "ProgramFiles": Bezeichner wurde nicht gefunden.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

hier mal die includes:

#include <iostream>
#include <windows.h>

« Letzte Änderung: 25.06.12, 20:08:11 von Kostnix »

werden Klammern hier auch als Sonderzeichen behandelt und müssen mit einem \ geschützt werden. Vermutlich schon.

Aha, glaub du hast recht. Die Klammern sind auch so grau hinterlegt.

Aber: mit einem \ schützen klappt nicht.:

system("xcopy \"Data\\Files\" "%ProgramFiles\(x86\)%\\Ubisoft\\Related Designs\\ANNO 2070"");


Meintest du so?  Der denkt immer noch, die Klammern seien irgendwie was zusammenhängendes...

Aber: ändert ein Backslash nicht das verzeichniss? Dann könnte man ja nicht einfach vor die Klammer ein \ setzen.

« Letzte Änderung: 25.06.12, 21:15:16 von Kostnix »

stimmt auch wieder, einen Backslash schützt man durch einen Backslash. Aber wie kann man eine Klammer schützen?
Schon mal bei google geschaut ?

UPDATE:

Habs gelöst, vor dem zweiten Pfad hat der \ gefehlt:

system("xcopy \"Data\\Files\" \"%ProgramFiles(x86)%\\Ubisoft\\Related Designs\\ANNO 2070\"");


jetzt funktionierts.

Danke für die mühen, kann geschlossen werden.

da schaut man es immer und immer wieder an und sieht es nicht ():-)


« Hilfe bei der Excel ProgramierungC# dynamische checkboxen überprüfen »
 

Fremdwörter? Erklärungen im Lexikon!
Wiederherstellungspunkt
Siehe Systemwiederherstellung. ...

Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...