次のコードを使用して、あるフォルダから別のフォルダにコピーする必要があるファイルのコレクションを繰り返します。ソースファイルが存在するときに正常に動作しますが、存在しないときは閉じるファイルにアクセスできないエラー
System.ObjectDisposedException:クローズファイルにアクセスできません。 at System.IO .__ Error.FileNotOpen()at System.IO.FileStream.get_Position()
私はここで何が欠けていますか?
For Each itm In listOfFiles
Try
If File.Exists(itm.SourcePath + itm.FileName) Then
Dim cf As New FileStream(itm.SourcePath + itm.FileName, FileMode.Open)
Dim ct As New FileStream(itm.DestinationPath + itm.FileName, FileMode.Create)
Dim len As Long = cf.Length - 1
Dim buffer(1024) As Byte
Dim byteCFead As Integer
While cf.Position < len
byteCFead = (cf.Read(buffer, 0, 1024))
ct.Write(buffer, 0, byteCFead)
fileCopyProgressBar.BeginInvoke(New Action(Sub() fileCopyProgressBar.Value = CInt(cf.Position/len * 100)))
End While
ct.Flush()
ct.Close()
cf.Close()
itm.FileExsits = True
Else
itm.FileExsits = False
End If
Catch ex As Exception
log.Error(ex.Message & " (unc)")
End Try
Next
どこに投げますか? –
これは、アプリケーションを実行するサーバーで発生するエラーです。 System.ObjectDisposedException:閉じられたファイルにアクセスできません。 at System.IO .__ Error.FileNotOpen() at System.IO.FileStream.get_Position() – MTplus
どの行番号? –