首页 > 解决方案 > 无法以编程方式删除 PDF 文件

问题描述

我无法从在 Windows 10 操作系统上运行的 c# Winform 桌面程序的共享驱动器(Windows 映射驱动器)中删除 pdf 文件。pdf文件是由我的c#程序中的Crystal Report创建的,当有修订时,我需要删除旧的pdf文件并编写新的。当程序尝试删除文件时,我将收到拒绝访问错误(HResult=0x80070005)。这只发生在我尝试从共享驱动器中删除它时。如果我在本地驱动器 (c:) 中生成 pdf 文件,并将其从本地驱动器中删除,那么一切都找到了。我可以从文件资源管理器中手动删除 pdf 文件,但不能从我的 c# 程序中删除。

另外,如果文件不是pdf文件,那么从共享驱动器中删除它是没有问题的。

奇怪的是,这只发生在 pdf 文件或扩展名为 .pdf 的文件上。如果我用 C++ 创建一个简单的文本文件 (test.txt) 并将其保存在共享驱动器中,我可以毫无问题地删除它。但是当我创建相同的文本文件并将其命名为 test.pdf 时,我无法删除它。

HResult=0x80070005 似乎只是权限问题的链接,但我坚信我的情况不是权限问题,因为如果文件是 *.txt,那么我可以随时删除它而不会出现任何问题。

为了排除pdf文件可能仍然与Crystal Report链接或被某些程序打开的可能性,我从共享驱动器中复制了pdf文件并将其保存在我的本地驱动器(c:)中并编写了一个简单的c++程序测试我是否可以删除它,但它失败了。无法删除。如果 pdf 文件最初创建并保存在本地驱动器中,我只能将其删除。如果pdf文件从共享驱动器复制到本地驱动器,那么我无法删除它。

如果有人能对此有所了解,我将不胜感激。

标签: c#pdf

解决方案


我认为(您/您的应用程序)没有删除文件的权限

  • 转到包含 PDF 文件的文件夹。
  • 右键单击该文件夹并选择属性。
  • 导航到安全选项卡。
  • 单击编辑,然后单击添加。
  • 在输入要选择的对象名称框下。键入“Everyone”(不带引号)并单击检查名称。单击确定。
  • 将打开一个带有“安全”选项卡的新窗口。在所有人的权限下,选中完全控制选项。选择应用并确定。
  • 该文件夹已被允许拥有所有权。
  • 现在您可以通过编程方式删除 PDF 文件

无权删除文件夹


推荐阅读