1

サーバー上の特定のディレクトリ (その中のすべてのファイルとディレクトリ) を完全にダウンロードするルーチンを作成する必要があります。

現在、ディレクトリの内容をリストするルーチンがあります

public List<string> GetListOfFiles(string serverPath)
        {
            List<string> files = new List<string>();
            try
            {

                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + serverPath);               
                request.Credentials = new NetworkCredential(_domain + "\\" + _username, _password);
                request.Method = WebRequestMethods.Ftp.ListDirectory;               


                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream());

                string line = reader.ReadLine();
                while (line != null)
                {
                    files.Add(line);                    
                    line = reader.ReadLine();
                }
                response.Close();

            }           
            catch (WebException ex)
            {
                FtpWebResponse response = (FtpWebResponse)ex.Response;
                string exMsg = string.Empty;

                switch (response.StatusCode)
                {
                    case FtpStatusCode.NotLoggedIn:
                        exMsg = "wrong username/password";
                        break;   


                    default:
                        exMsg = "The server is inaccessible or taking too long to respond.";
                        break;
                }   


                throw new Exception(exMsg);
            }
            return files;

        }

問題は、ファイルとディレクトリのリストを取得することです...次のようなものです

file1.dll
file2.dll
dir1Name

一覧表示するときにファイル名とディレクトリ名を区別する方法はありますか? 旗のような?

4

1 に答える 1

1

残念ながら、返される情報はフレームワークではなく、実際には FTP サーバーの関数です。

ListDirectoryDetailsの代わりにListDirectory、より詳細な情報 (各ファイルがディレクトリかファイルかを含む) を提供することができますが、その形式も FTP サーバーに依存するため、特別な解析が必要になります。

于 2012-09-25T20:28:44.693 に答える