【问题标题】:C# access error when deleting a file删除文件时 C# 访问错误
【发布时间】:2010-11-02 13:10:22
【问题描述】:

当我将 bat 文件 (File.Copy()) 从一个位置复制到 C 驱动器上的另一个位置并关闭程序然后运行另一个程序并尝试删除文件 (File.Delete()) 时,使用 c# 我得到一个错误: 拒绝访问路径“C:...\file.bat”。

所以我认为这是原始文件的权限问题。

然后我运行一个创建文件的程序(File.Create()),关闭程序并转到 2 文件的属性并查看安全选项卡,权限完全相同!

当我运行程序删除第二个文件时,我没有收到错误消息。那么为什么我会在使用 File.Copy 创建的文件上出现错误?

【问题讨论】:

  • 这是什么操作系统,涉及的路径是什么?

标签: c# .net


【解决方案1】:

如果你确定你有足够的权限来删除文件,我怀疑问题是,当文件仍然打开或仍在某个进程中时,你试图删除文件。所以请确保文件是调用 File.Delete 方法时未打开且不受所有其他进程的影响

【讨论】:

  • 我可以用鼠标删除文件,所以不是因为它是打开的。并且该程序已关闭,该程序创建了该文件,所以我也不是这样
【解决方案2】:

啊,当我这样做时: File.SetAttributes(@"C:...bat", FileAttributes.Normal);

然后我可以删除!

谢谢大家

【讨论】:

    【解决方案3】:

    重要的是要知道你是否

    1) 正在使用 windows 7 或 Vista,并且文件位于需要管理员访问权限才能删除的位置。

    2) 如果您以不同的身份运行这些应用程序,例如一个是服务器

    3) 文件位置

    4) 对复制的原始文件设置特殊访问权限

    【讨论】:

      【解决方案4】:

      如果您突然关闭 C# 程序而没有关闭文件(或者它从未关闭文件),就会发生这种情况。在这种情况下,文件正在“使用中”,该消息有时会被解释为安全问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多