【问题标题】:Explanation of return code from SHFileOperation()SHFileOperation() 的返回码说明
【发布时间】:2019-09-12 04:40:52
【问题描述】:

所有,

SHFileOperation() 返回 32 是否有原因?

我的情况是:

我当前的路径是 c:\foo\bar。 我的文件在 c:\foo 该文件将进入回收站。

这段代码在here中没有列为可能的返回值,不知道从哪里找原因。

我正在使用 MSVC 2010 Professional 在 Windows 7 64 位上试用它。

有人可以解释一下我在哪里可以找到返回值文档或一些关于失败原因的解释。

TIA!

【问题讨论】:

    标签: windows recycle-bin


    【解决方案1】:

    SHFileOperation 返回与 Winerror.h 错误值匹配的错误。 32 被定义为 ERROR_SHARING_VIOLATION,意思是“该进程无法访问该文件,因为它正被另一个进程使用。”这意味着另一个进程通过调用 SHFileOperation 访问您要更改的文件。 你不妨使用Process Explorer的find-feature来找出,哪个进程访问了你要更改的文件。

    【讨论】:

    • 谢谢。关于如何检查它的任何想法?问题是我刚刚创建了文件,我看到它存在于文件资源管理器中,但由于这个错误,我无法丢弃它。我正在做一个测试套件。
    • 您可以使用 Process Explorer 的 Find Handle 或 DLL 功能来找出访问您文件的进程。
    • 这些是 MSVC 安装的一部分还是外部应用程序的一部分?
    • Process Explorer 属于 Microsoft 的 Windows Sysinternals。
    【解决方案2】:

    我正在尝试自己查找代码列表!

    根据我的测试(所以请验证自己) 32 = 文件正在使用中,或者文件可能被锁定/受保护。 (创建了一个excel wkbk,打开,输入文本,尝试删除)

    2 = 未找到 0 = 没有问题

    4、8、16 个返回码似乎很可能

    【讨论】:

    猜你喜欢
    • 2013-04-30
    • 2012-02-25
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    相关资源
    最近更新 更多