![](/img/trans.png)
[英]C# class to parse WebRequestMethods.Ftp.ListDirectoryDetails FTP response
[英]C# FTP.ListDirectoryDetails - different response on different machines
在下面,我將代碼的一部分復制到了ftp上,並在給定路徑下檢查了其內容。
問題是,到目前為止,我的應用程序運行時沒有出現任何重大問題。 但是今天我被要求將其安裝在另一台計算機上,然后發現它的ftp方法不起作用。
直到今天,該應用程序已在4-5台計算機(win xp / win7)上運行,並且Ftp.ListDirectoryDetails返回的值類似於HTML:
<DIR> ..
09/28/11 10:43 [GMT] <DIR> .
(不幸的是stackoverflow不會忽略代碼塊內的html標簽...)
在下一台計算機上,我的響應是: drwxrwxrwx 1 user group 0 Oct 19 11:34 hr
有誰知道為什么會這樣? 如何解決這個問題?
下面是我做這件事的代碼的一部分
FtpWebRequest request = FtpWebRequest.Create(path) as FtpWebRequest;
LogAnything("ConnectTo(" + sPath + ")");
request.Credentials = new NetworkCredential(login, pswd);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = true;
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
FtpWebResponse response = request.GetResponse() as FtpWebResponse;
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string sPattern = @">(.*)<.A>";
string sSource;
ArrayList ContentList = new ArrayList();
while ((sSource = reader.ReadLine()) != null)
{
LogAnything("Spam: " + sSource);
}
最好的祝福,
皮特
FTP規范未定義文件列表的統一格式。 您看到的第一種格式是Windows格式,第二種是Unix格式。 獲得統一列表的唯一方法是使用MLST和MLSD命令,但是您將需要一些第三方組件才能正確使用列表和擴展命令。
FTP是我遇到的最不穩定的協議。 可能發生很多事情。 流可以無緣無故地被截斷。 無需說明即可關閉連接。 一些響應可以在需要時更改格式。 等等,所有FTP代碼都必須非常小心,因為FTP在一個非常激進的應用世界中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.