簡體   English   中英

使用 C# 中的 FtpWebRequest 統計/列出 FTP 目錄中的所有文件

[英]Count/list all files that are in FTP directory with FtpWebRequest in C#

我正在嘗試進行 C# 編程,但由於某種原因,我一直在嘗試計算上傳到我的 ftp 服務器上的所有文件。 我已經嘗試過 stackoverflow 中的一些代碼

代碼:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(server);
request.Method = WebRequestMethods.Ftp.ListDirectory;

request.Credentials = new NetworkCredential(user, password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string names = reader.ReadToEnd();

reader.Close();
response.Close();

return names.Split(
    new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();

他確實連接到了服務器,但只是在他能找到的一個文件中向我展示了那里。

在這里,您可以將列表視為字符串:

他找到了一個文件:

上傳到我的服務器上的所有文件:

這是我的列表(我不明白為什么有這么多索引):

您的代碼對我有用,但@Ozug 可能是正確的,您的服務器無法使用 CRLF 行結尾。

一個更健壯(也更高效)的實現是:

List<string> names = new List<string>();
while (!reader.EndOfStream)
{
    names.Add(reader.ReadLine());
}

它甚至應該處理 CR 行尾。

另請參閱解析 WebRequestMethods.Ftp.ListDirectoryDe​​tails FTP 響應的 C# 類

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM