gpt4 book ai didi

C# FTP 不支持给定路径的格式

转载 作者:太空宇宙 更新时间:2023-11-03 19:05:57 25 4
gpt4 key购买 nike

这是我的代码我有一个包含许多 zip 文件的 FTP。每个 zip 文件都有一个同名的 XML。我想解析这些 xml 文件。

我做的是这样的:

  1. 获取 FTP 中所有 zip 文件的列表并将名称保存在此变量目录中。

  2. 现在我要打开每个 zip 文件,其名称在 directories 列表中。我这样做了。

    foreach (string fileNameInFTP in directories)                   
    {
    }
  3. 现在要读取该 zip 文件的内容,我试过这个:。

    string fileName =  FTPAddress + fileNameInFTP;
    using (var file = File.OpenRead(fileName))
    using (var zip = new ZipArchive(file, ZipArchiveMode.Read))
    {
    foreach (var entry in zip.Entries)
    {
    using (var stream = entry.Open())
    {
    // do whatever we want with stream
    // ...
    }
    }
    }

我得到了这个异常 不支持给定路径的格式。 在这一行:using (var file = File.OpenRead("ftp://"+FTPAddress +"/"+ fileNameInFTP))你能帮忙吗

最佳答案

您应该使用类似这样的方法而不是尝试使用 File.OpenRead 进行远程 FTP 文件下载。

http://msdn.microsoft.com/en-us/library/ms229711%28v=vs.110%29.aspx

// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
request.Method = WebRequestMethods.Ftp.DownloadFile;

// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");

FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Stream responseStream = response.GetResponseStream();

using (var zip = new ZipArchive(responseStream , ZipArchiveMode.Read))
{
//Loops through each file in the zip that has the ".xml" extension
foreach (var entry in zip.Entries.Where(x=> (Path.GetExtension(x.Name) ?? "").ToLower() ==".xml"))
{
using (var stream = entry.Open())
{
//Load xml file and do whatever you like with it.
var xmlDocument = XDocument.Load(stream);
}
}
}

Console.WriteLine("Download Complete, status {0}", response.StatusDescription);

response.Close();

关于C# FTP 不支持给定路径的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27656857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com