我正在将图像扫描到文件夹中,并使用文件系统观察程序来获取图像并写入数据库。然后将该文件移动到另一个文件夹。
或者在我决定更新应用程序之前就是这种情况,现在文件拒绝让步,我得到了另一个进程正在使用该文件的标准错误。我尝试了很多不同的方法来释放文件但没有成功,包括等待最多5分钟!我的代码在这里可以做什么来强制移动/删除文件。
Dim fs As New FileStream(Trim(e.FullPath), FileMode.Open, FileAccess.Read)
Dim Data() As Byte = New [Byte](fs.Length) {}
fs.Read(Data, 0, fs.Length)
'copy to the database and close the file stream
fs.close
'attempt to move file
System.IO.File.Move(e.FullPath, "\\\Processed Docs\" & BDate & DocType(5))
我试过写一个循环:
If System.IO.File.Exists(e.FullPath) = True Then
Dim proFile As String = e.FullPath
Data = Nothing
fs.Close()
For i As Integer = 0 To 10
Try
My.Computer.FileSystem.DeleteFile(proFile)
Catch ex As Exception
If i = 10 Then
MsgBox("Failed delete")
Else
System.Threading.Thread.Sleep(1000)
End If
End Try
Next
end if
将保存的文件名放入集合中,然后稍后查询集合以获取超过9分钟的文件,然后尝试删除该文件。
Dim oldfile = (From F In pfiles Where F.pdate < DateTime.Now.AddMinutes(-3) Select F).ToList
If Not oldfile.count = 0 Then
For i As Integer = 0 To oldfile.Count - 1
Try
My.Computer.FileSystem.DeleteFile(oldfile(i).fileName)
Catch ex As Exception
End Try
Next
End If