0

我正在尝试使用下面的代码来尝试关闭文件流,因为即使在我处理它之后它仍然在服务器上使用,我也遇到了错误。所以我想可能会循环它直到它关闭,因为它不会在 1 次尝试后关闭。无论如何,我收到文件模式、文件访问、文件共享不是 IO 成员的错误。?

Dim thisFileInUse As Boolean = False
    Dim fs As System.IO.FileStream

    If System.IO.File.Exists(sFile) Then
        Try
            fs = System.IO.File.Open(sFile, io.FileMode.Open, io.FileAccess.Write, io.FileShare.ReadWrite)
            fs.Close()
            fs.Dispose()
        Catch
            Try
                fs.Close()
                fs.Dispose()
            Catch

            End Try

            thisFileInUse = True
        End Try
    End If
    Return thisFileInUse
4

2 回答 2

1

试试这个:

Imports System.IO


Dim thisFileInUse As Boolean = False
Dim fs As FileStream

If File.Exists(sFile) Then
    Try
        fs = File.Open(sFile, FileMode.Open, FileAccess.Write, FileShare.ReadWrite)
 ...

System.IO是命名空间名称,如果你导入它,你可以避免一遍又一遍地键入它。

于 2013-10-08T13:24:57.537 回答
1

使用Finally正确的命名空间System.IO

Imports System.IO
' ....

Public Shared Function IsFileInUse(sFile As String) As Boolean
    Dim stream As FileStream = Nothing
    Dim isInUse As Boolean = False
    Try
        stream = File.Open(sFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
    Catch generatedExceptionName As IOException
        isInUse = True
    Finally
        If stream IsNot Nothing Then
            stream.Close()
        End If
    End Try
    Return isInUse
End Function
于 2013-10-08T13:28:53.493 回答