Я хочу скопировать файл, используя CopyFile()
функционировать прямо из WinAPI.
Код работает, но файл не копируется.
Вот код
CopyFile("%%temp%%\\test.txt", "D:\\Tutorials\\test.txt", FALSE);
Если я изменю %%temp%%\\test.txt
к чему-то другому, как D:\Test\test.txt
, это работает, но не работает для локального каталога профиля.
Есть идеи, как пройти через это?
Для файловых API Win32 требуются пути. Реальные пути, а не строковые выражения, которые оценивают пути. Они не выполняют расширение переменных.
Если вы хотите, чтобы расширение переменной выполнялось на пути, пропустите его через ExpandEnvironmentStrings
(и использовать один %
до и после имени переменной, не удваивается) перед передачей CopyFile
,
Конечно, если вы просто пытаетесь жестко закодировать доступ к временному каталогу, не находя такие строки, как %TEMP%\test.txt
в файле конфигурации, вместо этого вы должны использовать политику ОС для временного каталога, доступного по GetTempPath
, (Затем используйте PathCchCombine
объединить имя каталога и имя файла)