问题标签 [shfileoperation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - SHFileOperation FOF_ALLOWUNDO 在长文件名上失败
我正在使用以下函数将文件删除到回收站:(C++、MFC、Unicode)
这适用于大多数文件。但是如果路径+文件名超过 255 个字符(并且仍然比 2048 个字符短得多),SHFileOperation 返回 124。即 DE_INVALIDFILES。
但是怎么了?我检查了一切一百万次。路径是双空终止的,我没有使用 \\?\ 它适用于短文件名。
我完全没有想法...
string - 在delphi中如何创建一个带有空分隔符的字符串
我正在使用 SHFileOperation ,源可以是 pwidechar ,文件名由 null 分隔,整个内容以双 null 结尾。
我可以创建一个widechar 数组,它包含我需要的信息,但是当我尝试将函数转换为pwidechar 时,它只复制到第一个null。
我究竟做错了什么?
delphi - 系统调用级别不正确
我正在使用 SHFileOperation 将文件删除到回收站。但有时我收到“系统调用级别不正确”错误。它不是每次或每个文件都发生。只是随机时间的一些随机文件。有人知道原因吗?谢谢。
更新:这是我正在使用的代码:
c++ - SHFileOperation 使用字符串复制文件夹
我正在尝试按SHFileOperationA
功能复制文件夹。这是我的代码。
我无法理解如何使字符串附加\0
两次。我尝试过这样的事情。
但是,它不起作用。我还尝试了更多组合,但没有一个有效。请任何人都可以建议我如何解决这个问题?
我可以通过直接分配这样的路径来解决问题:-
问题得到解决,但我的意图是使用字符串。请任何人都可以帮我解决这个问题。
另外,如果可能的话,任何人都可以告诉我为什么直接分配字符串常量,即sf.pFrom = "D:\\check\\folder4";
有效,而使用类似字符串的分配sf.pFrom = source.c_str( );
无效?
提前致谢。
copy - SHFILEOPERATION 与 ShowMessage - C++ Builder
我在 C++ Builder 中编写此代码以将一些文件夹从安装在 x: 上的网络文件夹(例如 x:\games\foldername)复制到本地路径:d:\program files。我使用 shfileopstruct 如下。
源路径(s 变量)是使用 FieldByName("path") 从数据库中获取的,然后给它一个前缀("x:\games\" 和 MSDN 建议的 "\0" 。 SHFILEOPERATION 可以正常工作。 . 但不同寻常的是,当我删除有关 ShowMessage(path) 的代码(我有用于验证)时,SHFILEOPERATION 确实失败了。
对此有什么建议吗?我错过了什么吗?我很感激你的帮助,因为我没有经验。提前致谢。
winapi - 带有自定义进度条的 SHFileOperation 副本/c++ builder
我使用 C++ Builder 和 SHFileOperation 从网络位置下载应用程序(其文件夹)。WinApi 有自己的进度条,但我需要一个带有进度条的自定义表单。
如何单独跟踪复制进度,以便拥有自己的进度条?一个简短的例子肯定会有所帮助。谢谢。
windows - Win 32 API:SHFileOperation 合并文件夹
我有 2 个文件夹:
和
我想将文件夹 2 与文件夹 1 合并,以便只有文件夹 1 存在。
我尝试使用 SHFileOperation
...但是将 m:\folder2 放入 m:\folder1\folder2。但这不是我想要的。
SHFileOperation 是做到这一点的有效方法吗?如果是,应该怎么做?
谢谢!
delphi - Delphi XE5中的ShFileOperation
我在使用 SHFileOperation 复制和删除 *.mb 和 *.db 文件时遇到问题
CopyFiles 代码效果很好,复制所有文件并在需要时创建文件夹,但是当我调用 DeleteFiles 代码时发生了一些奇怪的事情,“bkp”文件夹中的所有文件都被删除,但文件夹没有。
当我尝试访问它说“访问被拒绝”的文件夹时,在我关闭我的应用程序后,文件夹被删除了。
这是我的程序:
delphi - 递归删除文件并跳过正在使用的文件?
我正在使用 Windows API 递归删除许多文件和文件夹。我在没有 UI 的情况下使用它并抑制错误。问题是,如果其中一个文件正在使用中,它会完全失败。我期待这种可能性,并希望这种情况继续下去,跳过任何此类情况。失败的一个文件实际上是调用此删除命令的同一个 EXE(无论如何都会在全部完成后将其删除。
这就是我现在正在做的事情:
我怎样才能让它跳过正在使用的文件的任何事件?我查看了文档,但找不到任何可以做到这一点的东西。
shell - 从 IfileOperation.GetDisplayName 中的 IShellItem 获取文件名
我挂钩了在 windows 中监视/拦截文件复制的CopyItems
方法。IFileOperation
我的问题是如何从(CopyItems 的最后一个参数)中检索完整的文件名IShellItem
有psiDestinationFolder
一个方法调用GetDisplayName
,只返回当前文件的文件夹名称开始复制!!但我想获得完整的文件名,不知道该怎么办!?还有其他方法可以帮助我获得全名吗?或者我必须使用另一个 API ....?
对不起,如果我的英语不好!