我用VB编写了一个程序,其中电子邮件中的一些附件以编程方式存储在计算机中。
保存文件的过程如下:
有时候,效果很好。但是,有时错误突然发生,错误消息是:
进程无法访问文件"C:\AnotherFolder“,因为它正在被另一个进程使用。
请注意,程序无法访问的是文件夹,而不是文件。
我的猜测是,它首先发生在步骤3,当程序仍然在文件的最后写时间上“写入”,并且当步骤4发生时还没有被“释放”。
我在复制错误方面遇到了困难,因为“它就这样发生了”。
我的问题是如何判断文件夹本身是否还在进程中,等待它完成,然后再给它写一次?
编辑
通过测试产生相同错误的代码,我缩小了问题的范围。我不知道是否是这样,但我认为有90%的可能性是这样的。
For i As Integer = 0 To 500
Try
Directory.SetLastWriteTime("C:\anotherFolder", Date.Now)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Console.WriteLine(i)
Next在我的例子中,电子邮件有6个附件。(我刚到了500,这样就很容易发生异常了)。每次保存附件时,它都会将lastWriteTime写入其父文件夹。如果异常没有发生,请再次运行代码。
我该怎么处理呢?
发布于 2014-01-22 03:40:04
试着像这样
Dim path As String = "C:\anotherFolder" 和
Directory.SetLastWriteTime(path, DateTime.Now)https://stackoverflow.com/questions/21273142
复制相似问题