FTP ディレクトリのコンテンツを取得するコードがあります。私がテストしたいくつかのサーバーでは、正常に動作します。
しかし、あるサーバーでは、応答を取得しようとすると、このメソッドが例外をスローします。
public static List<string> ListDirectory(string dirPath, string ftpUser, string ftpPassword)
{
List<string> res = new List<string>();
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(dirPath);
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
request.KeepAlive = false;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
while (!reader.EndOfStream)
{
res.Add(reader.ReadLine());
}
reader.Close();
response.Close();
return res;
}
キャッチセクションで私はこのようなものを持っています
catch (WebException e)
{
FtpWebResponse response = (FtpWebResponse)e.Response;
/*in my case response.Status = ActionNotTakenFileUnavailableOrBusy*/
....
}
以前は機能していましたが、フォルダーが空の場合は失敗します。そこに何かがあれば、それは機能します。このディレクトリは TotalCommander で見ることができます。
理由はありますか?