Я использую функцию 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