Я использую следующий код для итерации коллекции файлов, которые мне нужно скопировать из одной папки в другую. Он отлично работает, когда существует исходный файл, но когда он не существует, я получаюПолучение Невозможно получить доступ к закрытой ошибке файла
System.ObjectDisposedException: не удается получить доступ к закрытому файлу. в System.IO .__ Ошибка.FileNotOpen() в 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 .__ Ошибка.FileNotOpen() у System.IO.FileStream.get_Position() – MTplus
номер строки? –