簡體   English   中英

C#FTP.ListDirectoryDe​​tails-不同機器上的不同響應

[英]C# FTP.ListDirectoryDetails - different response on different machines


在下面,我將代碼的一部分復制到了ftp上,並在給定路徑下檢查了其內容。
問題是,到目前為止,我的應用程序運行時沒有出現任何重大問題。 但是今天我被要求將其安裝在另一台計算機上,然后發現它的ftp方法不起作用。

直到今天,該應用程序已在4-5台計算機(win xp / win7)上運行,並且Ftp.ListDirectoryDe​​tails返回的值類似於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.

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