程序中使用的可编程解锁文件

时间:2014-09-25 07:52:38

标签: .net vb.net

我正在将图像扫描到文件夹中,并使用文件系统观察程序来获取图像并写入数据库。然后将该文件移动到另一个文件夹。

或者在我决定更新应用程序之前就是这种情况,现在文件拒绝让步,我得到了另一个进程正在使用该文件的标准错误。我尝试了很多不同的方法来释放文件但没有成功,包括等待最多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

0 个答案:

没有答案