我正在尝试使用下面的代码来尝试关闭文件流,因为即使在我处理它仍在服务器上使用它之后我也会收到错误。所以我想可能会循环它直到它关闭,因为它不会在1次尝试后关闭。无论如何,我收到的错误是FileMode,File Access,FileShare不是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
答案 0 :(得分: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
是命名空间名称,如果您导入它,则可以避免不得不一遍又一遍地输入它。
答案 1 :(得分: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