在 C# 中从 FTP 读取文件到内存

时间:2023-03-31
本文介绍了在 C# 中从 FTP 读取文件到内存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想从 FTP 服务器读取文件而不将其下载到本地文件.我写了一个函数,但它不起作用:

I want to read a file from a FTP server without downloading it to a local file. I wrote a function but it does not work:

private string GetServerVersion()
{
    WebClient request = new WebClient();

    string url = FtpPath + FileName;
    string version = "";

    request.Credentials = new NetworkCredential(ftp_user, ftp_pas);

    try
    {
        byte[] newFileData = request.DownloadData(new Uri(FtpPath)+FileName);
        string fileString = System.Text.Encoding.UTF8.GetString(newFileData);
    }
    catch (WebException e)
    {
    }
    return version;
}

推荐答案

这是一个简单的工作示例,使用您的代码从 Microsoft 公共 FTP 服务器获取文件:

Here's a simple working example using your code to grab a file from the Microsoft public FTP servers:

WebClient request = new WebClient();
string url = "ftp://ftp.microsoft.com/developr/fortran/" +"README.TXT";
request.Credentials = new NetworkCredential("anonymous", "anonymous@example.com");

try
{
  byte[] newFileData = request.DownloadData(url);
  string fileString = System.Text.Encoding.UTF8.GetString(newFileData);
  Console.WriteLine(fileString);
}
catch (WebException e)
{
  // Do something such as log error, but this is based on OP's original code
  // so for now we do nothing.
}

我认为您在代码中的这一行缺少斜杠:

I reckon you're missing a slash on this line here in your code:

string url = FtpPath + FileName;

可能在 FtpPathFileName 之间?

Perhaps between FtpPath and FileName ?

这篇关于在 C# 中从 FTP 读取文件到内存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

上一篇:在 PowerShell 中自动化安全 FTP 的最佳方法是什么? 下一篇:无法连接到 FTP:(553) 文件名不允许

相关文章