检查文件是否由其他进程

时间:2015-03-18 07:39:40

标签: vb.net

如果我的代码足够正确,我有一些要求您检查和建议。我的应用程序在文件上工作,有时它通过Windows服务下载多个文件,然后由其他Windows服务解析器进程解析这些文件。不幸的是,在进程文件必须完成下载之前,进程解析器应该打开文件并使用它,因此我准备了一些代码来首先检查文件是否是空闲的 - 意味着不是由另一个进程或某个人打开,无论如何。我使用大多数情况下streamreader打开文件并使用它,但正如我所说,我想首先检查文件,如果它准备好了。

这是我的代码,你怎么看:

Public Shared Function FileInUse(ByVal sFile As String, ByVal log As String) As Boolean

        Dim thisFileInUse As Boolean = True
        Dim counter As Integer = 0

        For i = 0 To 30
            counter += 1
            If System.IO.File.Exists(sFile) Then
                Try
                    Using f As New IO.FileStream(sFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
                        thisFileInUse = False
                        Exit For
                    End Using
                Catch
                    System.Threading.Thread.Sleep(10000)        '10 sec
                End Try
            End If
        Next

        Return thisFileInUse

    End Function

0 个答案:

没有答案