Ser*_*gi0 5 winapi shfileoperation c++14 visual-studio-2017
我正在使用 Shell API 复制包含文件的文件夹。
SHFILEOPSTRUCT sf = {0};
sf.wFunc = FO_COPY;
sf.hwnd = 0;
sf.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT | FOF_NO_UI;
sf.pFrom = "C:\\Users\\Sergi0\\AppData\\Local\\Temp\\untar.temp\\000\0";
sf.pTo = "F:\\\0";
// both pFrom and pTo are double NULL terminated, I have rechecked it
int err = SHFileOperation(&sf);
Run Code Online (Sandbox Code Playgroud)
一切正常,文件夹被复制到驱动器 F:问题是消息
internal\sdk\inc\wil\filesystem.h(820)\windows.storage.dll!7684045C: (caller: 7676413A) ReturnHr(2) tid(660) 80070057 Incorrect parameter.
...
internal\sdk\inc\wil\filesystem.h(820)\windows.storage.dll!7684045C: (caller: 7676413A) ReturnHr(101) tid(660) 80070057 Incorrect parameter.
Run Code Online (Sandbox Code Playgroud)
在 Visual Studio 调试控制台中打印。文件夹 000 中有 100 个文件,打印了 100 条消息。
我应该担心这些吗?我在 Windows 10 上使用 VS 2017。
更新 我尝试过使用另一台设备,我在 VS2017 和 VS2008 中看到相同的错误。但是,通用闪存驱动器没有此类错误。所以这似乎与我使用的设备上的大容量存储实现有关。我在 SDK 中的任何地方都没有找到文件 filesystem.h。
您无需担心这些消息。复制引擎试图获取有关目标目录 ( F:\) 的信息,但结果证明它不是目录;这是一个驱动器。返回错误(“愚蠢的复制引擎,那不是目录。”),复制引擎说“对不起”,一切正常。
抱歉创建了不必要的闹钟。