无法删除刚创建的文件

时间:2013-05-23 09:44:09

标签: vb.net-2010

我的应用程序可以创建一个目录,从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

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

为什么我的文件被锁定? 我该怎样做才能绕过或取消这个锁?

RG,

埃里克

2 个答案:

答案 0 :(得分:3)

发现问题。

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

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

答案 1 :(得分:0)

您是否也尝试过File.Kill(fileLocation)方法?