Сбой передачи FTP-кода: «[System.IO.FileStream] не содержит метод с именем« CopyTo »» - PullRequest
1 голос
/ 24 апреля 2019

Я пытаюсь код из:
Загрузка файлов по FTP с помощью PowerShell

$request = [Net.WebRequest]::Create("ftp://ftp.example.com/remote/path/file.zip")
$request.Credentials = New-Object System.Net.NetworkCredential("username", "password")
$request.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile 

$fileStream = [System.IO.File]::OpenRead("C:\local\path\file.zip")
$ftpStream = $request.GetRequestStream()

$fileStream.CopyTo($ftpStream)

$ftpStream.Dispose()
$fileStream.Dispose()

И я получаю эту ошибку:

Ошибка при вызове этого метода: [System.IO.FileStream] не содержит метод с именем «CopyTo».

У вас есть идея?

1 Ответ

0 голосов
/ 29 апреля 2019

Для Stream.CopyTo необходим .NET Framework 4.

  • Либо обновите установку .NET Framework
  • Или используйте цикл, как вы можете видеть в разделе «Мониторинг прогресса» моего ответа на:
    Загрузка файлов по FTP с помощью PowerShell

    $buffer = New-Object Byte[] 10240
    while (($read = $fileStream.Read($buffer, 0, $buffer.Length)) -gt 0)
    {
        $ftpStream.Write($buffer, 0, $read)
    }
    
...