如何使用PowerShell的FtpWebRequest类从FTP服务器下载文件名中包含井号/井号'#'的文件

莫罗斯

我已经建立了一个脚本,用于从FTP服务器下载文件。该脚本适用于我尝试下载的所有文件,但包含的文件除外#经过研究后,我无法找到该问题的解决方案。下面列出了我用于下载文件的代码。

function Get-FtpFile
{
  Param ([string]$fileUrl, $credentials, [string]$destination)
  try
  {
    $FTPRequest = [System.Net.FtpWebRequest]::Create($fileUrl)
    if ($credentials) 
    {
        $FTPRequest.Credentials = $credentials
    }
    $FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile
    $FTPRequest.UseBinary = $true

    # Send the ftp request
    $FTPResponse = $FTPRequest.GetResponse()

    # Get a download stream from the server response
    $ResponseStream = $FTPResponse.GetResponseStream()

    # Create the target file on the local system and the download buffer
    $LocalFile = New-Object IO.FileStream ($destination,[IO.FileMode]::Create)
    [byte[]]$ReadBuffer = New-Object byte[] 1024

    # Loop through the download
    do {
        $ReadLength = $ResponseStream.Read($ReadBuffer,0,1024)
        $LocalFile.Write($ReadBuffer,0,$ReadLength)
       }
    while ($ReadLength -ne 0)
    $LocalFile.Close()
  }
  catch [Net.WebException]
  {
    return "Unable to download because: $($_.exception)"
  }
}

我尝试使用WebRequest.DownloadFile()代替,但它仍然不适用于包含的文件#,我也尝试过使用FtpWebRequest重命名方法重命名文件,但也无法使用。

有人知道该问题的任何解决方案或解决方法吗?

马丁·普里克里(Martin Prikryl)

您必须对URL中#as进行URL编码%23$fileUrl)。


如果要以编程方式进行操作,请参阅:
从C#的FTP服务器下载名称包括特殊字符的文件

在PowerShell中,它是这样的:

Add-Type -AssemblyName System.Web
$fileUrl = "https://example.com/path/" + [System.Web.HttpUtility]::UrlEncode($filename)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在React中如何从服务器下载文件?

来自分类Dev

使用FtpWebResponse下载文件-即使从ftp服务器中删除文件,也可以下载文件?

来自分类Dev

如何从服务器请求中获取文件名?

来自分类Dev

git在文件名之前和之后的井号#的含义?

来自分类Dev

如何在浏览器的FTP服务器上下载文件?

来自分类Dev

批处理文件中“#”(井号)的用法

来自分类Dev

使用FtpWebRequest下载文件时获取文件名而不是内容

来自分类Dev

使用Python从包含给定字符串的FTP服务器下载文件

来自分类Dev

Ruby Net :: FTP-从服务器下载文件

来自分类Dev

使用PHP或Python从FTP服务器读取或下载文件的5kb,而不是下载或读取整个文件

来自分类Dev

在Angular 8中从web.api下载文件时从服务器获取文件名

来自分类Dev

使用PowerShell中的WinSCP .NET程序集从FTP / SFTP服务器上的文件夹集中下载文件和电子邮件结果

来自分类Dev

c#尝试使用WebClient下载文件名中包含特殊字符的文件

来自分类Dev

在React中如何从服务器下载文件?

来自分类Dev

从AngularJS的服务器下载文件时如何更改文件名

来自分类Dev

是否可以使用bash从服务器获取mp3的下载文件名?

来自分类Dev

使用FtpWebResponse下载文件-即使从ftp服务器中删除文件,也可以下载文件?

来自分类Dev

htaccess重写为名称文件名中带有井号(#)的文件

来自分类Dev

从FTP服务器下载文件时损坏文件

来自分类Dev

如何从FTP服务器下载文件,然后在下载完成后自动从服务器删除文件?

来自分类Dev

如何从服务器请求中获取文件名?

来自分类Dev

在文件夹名称中使用井号(#),无法在超链接中打开

来自分类Dev

使用PowerShell读取下载文件的文件名

来自分类Dev

使用FtpWebRequest下载文件时获取文件名而不是内容

来自分类Dev

如何处理文件名中的井号('#')?

来自分类Dev

如何使用WinSCP从FTP服务器下载特定文件?

来自分类Dev

如何从Spring Integration ftp中的服务器下载以“ xyz”开头的文件名?

来自分类Dev

如何使用 Powershell 从 Azure 存储下载 blob 文件并将其保存到 FTP 服务器?

来自分类Dev

Python FTP服务器下载文件名中包含特定关键字的最新文件

Related 相关文章

  1. 1

    在React中如何从服务器下载文件?

  2. 2

    使用FtpWebResponse下载文件-即使从ftp服务器中删除文件,也可以下载文件?

  3. 3

    如何从服务器请求中获取文件名?

  4. 4

    git在文件名之前和之后的井号#的含义?

  5. 5

    如何在浏览器的FTP服务器上下载文件?

  6. 6

    批处理文件中“#”(井号)的用法

  7. 7

    使用FtpWebRequest下载文件时获取文件名而不是内容

  8. 8

    使用Python从包含给定字符串的FTP服务器下载文件

  9. 9

    Ruby Net :: FTP-从服务器下载文件

  10. 10

    使用PHP或Python从FTP服务器读取或下载文件的5kb,而不是下载或读取整个文件

  11. 11

    在Angular 8中从web.api下载文件时从服务器获取文件名

  12. 12

    使用PowerShell中的WinSCP .NET程序集从FTP / SFTP服务器上的文件夹集中下载文件和电子邮件结果

  13. 13

    c#尝试使用WebClient下载文件名中包含特殊字符的文件

  14. 14

    在React中如何从服务器下载文件?

  15. 15

    从AngularJS的服务器下载文件时如何更改文件名

  16. 16

    是否可以使用bash从服务器获取mp3的下载文件名?

  17. 17

    使用FtpWebResponse下载文件-即使从ftp服务器中删除文件,也可以下载文件?

  18. 18

    htaccess重写为名称文件名中带有井号(#)的文件

  19. 19

    从FTP服务器下载文件时损坏文件

  20. 20

    如何从FTP服务器下载文件,然后在下载完成后自动从服务器删除文件?

  21. 21

    如何从服务器请求中获取文件名?

  22. 22

    在文件夹名称中使用井号(#),无法在超链接中打开

  23. 23

    使用PowerShell读取下载文件的文件名

  24. 24

    使用FtpWebRequest下载文件时获取文件名而不是内容

  25. 25

    如何处理文件名中的井号('#')?

  26. 26

    如何使用WinSCP从FTP服务器下载特定文件?

  27. 27

    如何从Spring Integration ftp中的服务器下载以“ xyz”开头的文件名?

  28. 28

    如何使用 Powershell 从 Azure 存储下载 blob 文件并将其保存到 FTP 服务器?

  29. 29

    Python FTP服务器下载文件名中包含特定关键字的最新文件

热门标签

归档