Dateipfad auslesen und Datei kopieren
-
Hey
Mein Ziel ist es den Dateipfad auszulesen und die besagte Datei zu kopieren!
Das mit dem Auslesen habe ich bereits geschafft:
char FilePath[MAX_PATH]; GetModuleFilenameA(NULL,FilePath,MAX_PATH);
Allerdings akzeptiert die Funktion "CopyFile" meine Variable FilePath nicht,
zumahl Filepath 1x "\" ausgibt und CopyFile 2x "\"...Nun wollte ich mal fragen, ob es eine Alternative zu CopyFile bzw. GetModuelFilenameA gibt?
-
Für char-Strings ist die Funktion CopyFileA vorgesehen, analog zu GetModuleFilenameA.
Es ist aber heute nicht mehr sinnvoll, ANSI-Strings zu verwenden, zumal Dateinamen auch Unicode-Zeichen enthalten können.
CopyFile erwartet einen TCHAR-String:TCHAR FilePath[MAX_PATH]; GetModuleFileName(NULL,FilePath,MAX_PATH); CopyFile(FilePath, ...);
Das dann am besten mit UNICODE compilieren.
-
Danke erst mal für deine Antwort!
Kann mir jemand sagen, was ein LPCWSTR ist??
Denn wenn ich meinen Zielpfad bei CopyFile angebe...ist das immer als CHAR-Container, und das scheint falsch zu sein :|
TCHAR FilePath[MAX_PATH]; GetModuleFileName(NULL,FilePath,MAX_PATH); CopyFile(FilePath, "c:\\Users\\julian\\...", false);
-
LPCWSTR == const wchar_t *
Wide Strings sind Unicode Strings!
- W steht also für Unicode, (ein darstellbares zeichen hat als wchar_t 16bit)
- bei MBCS steht kien besonderer Buchstabe oder A, (ein Darstellbares zeichen hat als char 8bit)
- T steht für Compilerabhänige Typisierung, bei Unicode wird wchar_t genommen, ansonsten char.
-
CopyFile(FilePath, _T("c:\\Users\\julian\\..."), false);
Zur Definition von String-Literalen:
"c:\\Users\\julian\\..." // => ANSI, 8 Bit Zeichen L"c:\\Users\\julian\\..." // => UNICODE, 16 Bit Zeichen _T("c:\\Users\\julian\\...") // TCHAR, je nach Compiler-Einstellung ANSI oder UNICODE