0

我的应用程序可以创建一个目录,将一个 ZIP 文件中的文件放入其中,然后删除该 ZIP 文件。然后,当我尝试删除该文件时,即使没有对其进行任何处理,我也会收到拒绝访问错误。这是代码:

 File.WriteAllBytes(OpslagLocatieDocumenten + myTicketNummer.ToString + "\documenten.zip", op.Documenten)
  Using zp As New ZipFile(OpslagLocatieDocumenten + myTicketNummer.ToString + "\documenten.zip")
    zp.FlattenFoldersOnExtract = True
    zp.ExtractAll(OpslagLocatieDocumenten + myTicketNummer.ToString, ExtractExistingFileAction.OverwriteSilently)
    zp.Dispose()
  End Using

  Try
    For Each itm As String In Directory.GetFiles(OpslagLocatieDocumenten + myTicketNummer.ToString)
      Try
        File.Delete(itm)
      Catch ex As Exception

      End Try
    Next

  Catch ex As Exception
  End Try

现在看起来有点乱,但这是出于测试目的。在下一部分中,在从 ZIP 写入文件之后,我尝试删除这些文件。目前目录中有两个文件,一个 ZIP 和一个来自 ZIP 的 PDF 文档。itm 中的第一个文件是 PDF,它会出现 ACCESS DENIED 错误。itm 中的第二个文件是被删除的 ZIP。PDF 大小为 311 kb。通过 Windows 资源管理器,即使应用程序仍在运行,我也可以毫无问题地删除它。

为什么我的文件被锁定?我可以做些什么来绕过或移除这个锁?

rg,

埃里克

4

2 回答 2

3

发现了问题。

添加到 ZIP 的文件的属性设置为只读。因此,当应用程序写入文件时,Windows 应该不允许应用程序删除它。

不幸的是,Windows 确实允许通过 Windows 资源管理器删除文件,而不会显示该文件是只读的。

于 2013-05-23T10:01:38.327 回答
0

你也试过这个File.Kill(fileLocation)方法吗?

于 2013-06-02T09:10:26.000 回答