ターゲットタイプを特定する方法を "ハック"が見つかりました。フォルダに
request.Method = WebRequestMethods.Ftp.GetFileSize;
を使用する場合、それは例外で なります
未処理の例外:System.Net.WebException:(550)使用できないファイル:リモートサーバー はERRO rを返さ(例えば、ファイルが見つからない、no アクセス)。
ただしファイルに保存すると、自然にサイズが返されます。
私はこのようなメソッドのサンプルコードを作成しています。
static bool IsFile(string ftpPath)
{
var request = (FtpWebRequest)WebRequest.Create(ftpPath);
request.Method = WebRequestMethods.Ftp.GetFileSize;
request.Credentials = new NetworkCredential("foo", "bar");
try
{
using (var response = (FtpWebResponse)request.GetResponse())
using (var responseStream = response.GetResponseStream())
{
return true;
}
}
catch(WebException ex)
{
return false;
}
}
FTPエラーが発生する可能性があるため、変更することをお勧めします。
あなたはサーバーにアクセスできますか?そしてもしそうなら、どうですか?この質問には多くの詳細が欠けています。 – Dykam
パスだけではわかりません。 – Oded
サーバにアクセスできない場合、パスに拡張子(例:.xxx)が付いているかどうかを調べる単純な正規表現は、脆弱ですが合理的な方法です。 – Didaxis