gpt4 book ai didi

c++ - SHFileOperation 创建空目录而不是文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:26 34 4
gpt4 key购买 nike

我正在尝试使用 SHFileOperation 将文件从一个位置复制到另一个位置:

SHFILEOPSTRUCT fileop;
fileop.hwnd = 0;
fileop.wFunc = FO_COPY;
fileop.pFrom = L"C:\\SomeDirectory\\SomeName.jpg\0";
fileop.pTo = L"C:\\SomeOtherDirectory\\SomeName.jpg\0";
fileop.fFlags = FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_SILENT;
fileop.fAnyOperationsAborted = FALSE;
fileop.hNameMappings = 0;
fileop.lpszProgressTitle = 0;
SHFileOperation(&fileop);

问题是,不是在 SomeOtherDirectory 中获取 SomeName.jpg 的拷贝,而是创建了一个名为 SomeOtherDirectory\SomeName.jpg 的空目录,有什么线索吗?

最佳答案

对于FO_COPYFO_MOVE 操作,SHFILEOPSTRUCTpTo 成员必须是一个位置,即一个目录, 而不是目标文件名。该目录允许不存在,在这种情况下,即使它看起来像一个文件名也会被创建。

您应该只指定 "C:\\SomeOtherDiretory\0" 或使用 FO_RENAME

至于为什么你的文件没有创建,你查看返回值了吗?

关于c++ - SHFileOperation 创建空目录而不是文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491499/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com