Я использую функцию File.Copy для копирования файла из одного места в другое в цикле For Loop, поскольку нам нужно скопировать этот файл в 200 разных мест. Но я получаю ошибку в середине процесса. Ниже приведен код, который я использовал.
If File.Exists(FromfileLocation) Then
File.Copy(FromfileLocation, TofileLocation, True)
End If
-1
vishal
8 Ноя 2019 в 13:22
Похоже, что файл открыт другой программой?
– Sebastian Brosch
8 Ноя 2019 в 13:26
1
Если вы копируете один и тот же файл в 200 разных мест назначения, зачем каждый раз проверять, существует ли File.Exists? Возможно, протестируйте один раз, а затем выполните копирование в цикле. Возможно, поможет на одну операцию ввода-вывода внутри этого цикла. Также проверьте, в каком целевом файле происходит сбой. Если одно и то же каждый раз, может быть проблема с разрешением на запись.
– Jon Roberts
8 Ноя 2019 в 13:33
1 ответ
Вы можете сделать это по-другому, без проблемы «используется другим процессом».
Попробуй это:
Public Shared Sub CopyMyFile(FromfileLocation As String, TofileLocation As String)
Try
If File.Exists(FromfileLocation) Then
Using fs As FileStream = File.OpenRead(FromfileLocation)
Using sw As FileStream = File.Open(TofileLocation, FileMode.OpenOrCreate)
Dim b(1024 * 4) As Byte
Do
Dim readed As Integer = fs.Read(b, 0, b.Length)
If readed > 0 Then
sw.Write(b, 0, readed)
Else
Exit Do
End If
Loop
End Using
End Using
End If
Catch ioEx As FileNotFoundException
Console.WriteLine(ioEx.Message)
End Try
End Sub
1
G3nt_M3caj
11 Ноя 2019 в 11:19
Похожие вопросы
Новые вопросы
vb.net
Visual Basic.NET (VB.NET) - это мультипарадигмальный, управляемый, типобезопасный, объектно-ориентированный язык компьютерного программирования. Наряду с C # и F # это один из основных языков, нацеленных на .NET Framework. VB.NET можно рассматривать как эволюцию Microsoft Visual Basic 6 (VB6), но реализованную в Microsoft .NET Framework. НЕ ИСПОЛЬЗУЙТЕ этот тег для вопросов VB6, VBA или VBScript.