gpt4 book ai didi

c# - FtpWebRequest ListDirectory 不返回所有文件

转载 作者:行者123 更新时间:2023-11-30 15:57:57 26 4
gpt4 key购买 nike

我正在尝试从包含大约 9000 个文件的 FTP 位置检索文件列表。

但是下面的代码总是只给出97个文件。在第 98 个文件的循环开始时,StreamReader.Peek() 变为 -1

输出“test.txt”始终只有前 97 个文件,因为 FTP 响应本身只包含 97 个文件。

感谢任何帮助。

requestList = (FtpWebRequest)WebRequest.Create("xxx");
requestList.Credentials = new NetworkCredential("xx", "xx");
requestList.Method = WebRequestMethods.Ftp.ListDirectoryDetails;

responseList = (FtpWebResponse)requestList.GetResponse();
responseListStream = responseList.GetResponseStream();
listReader = new StreamReader(responseListStream);

using (StreamWriter w = new StreamWriter("test.txt"))
{
while (listReader.Peek() >= 0)
{
w.WriteLine(listReader.ReadLine());
}
w.Close();
}

最佳答案

Peek() 条件错误。只要暂时没有数据可供读取,它就会中断循环。

使用这段代码:

string line;
while (!string.IsNullOrEmpty(line = listReader.ReadLine()))
{
w.WriteLine(line);
}

虽然如果你只需要复制流,使用这个:

w.Write(listReader.ReadToEnd());

或者更好(更有效率):

using (Stream fileStream = File.Create("test.txt"))
{
responseListStream.CopyTo(fileStream);
}

关于c# - FtpWebRequest ListDirectory 不返回所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44224119/

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