CopyFile不适用于环境字符串,但仅适用于放置文件的标准目录.无论如何要通过这个?

bla*_*lah -2 c++ winapi file-copying

我想CopyFile()直接从WinAPI 使用该函数复制文件.

代码有效,但文件未复制.

这是代码 -

CopyFile("%%temp%%\\test.txt", "D:\\Tutorials\\test.txt", FALSE);
Run Code Online (Sandbox Code Playgroud)

如果我更改%%temp%%\\test.txt为其他类似的东西D:\Test\test.txt,它可以工作,但不适用于本地配置文件目录.

知道怎么过这个吗?

Ben*_*igt 6

Win32文件API需要路径.实际路径,而不是评估路径的字符串表达式.他们不执行可变扩展.

如果要在路径上完成变量扩展,请在传递之前将其传递ExpandEnvironmentStrings(并%在变量名之前和之后使用单个,而不是加倍)CopyFile.

当然,如果您只是尝试硬编码访问临时目录,而不是%TEMP%\test.txt在配置文件中查找字符串,那么您应该使用临时目录的操作系统策略,可通过调用获得GetTempPath.(之后,用于PathCchCombine合并目录名和文件名)

  • @blah:因为你没有做我说的另一件事."**和**使用单个'%`"表示你必须同时做两个.不只是选择一个并期望成功. (4认同)