2012-02-24 12 views
2

ファイルが存在するかどうかをチェックするコードを記述しています。ファイルが存在する場合は、WebExceptionをスローする必要があります。コードは以下の通りです。このコードを.NET 3.5で実行するとWebExceptionがスローされますが、.NET 4.0を使用する場合は例外がスローされません。私は例外がスローされるように私はファイルの存在を検証することができます。コードスローWebExceptionは.NET 3.5では動作しますが4.0では動作しません

bool IsExists = true; 
try 
{ 
    // string ftpServer = "FTP://111.111.111.111/16FebTo15Mar/Backup/MT_Backup/"; 
    string userName = "gff"; 
    // string filename = "sachin"; 
    string password = "[email protected]"; 
    string ftppath= "FTP://111.111.111.111/16FebTo15Mar/Backup/MT_Backup/bh/"; 
        // Ftpurl + new FileInfo(EmpFldr).Name + "/"; 

    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftppath); 
    request.Credentials = new NetworkCredential(userName, password); 
    request.Method = WebRequestMethods.Ftp.PrintWorkingDirectory; 
    // request.Method = WebRequestMethods.Ftp.MakeDirectory; 
    FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 
} 
catch (WebException ex) 
{ 
    IsExists = false; 
} 
return IsExists; 
+0

あまりわからなく、(http://stackoverflow.com/questions/4604693/ftp-throws-webexception-only-in-net-4-0)[ 'UsePassive'プロパティを変更]してみてくださいftprequestの場合 – V4Vendetta

+0

例外はまだスローされていますか?より一般的な例外をキャッチし、それが何であるかを確認してください。 – rikitikitik

答えて

0

FTP経由でファイルの存在を確認する場合は、check out this answer

代わりに次のWebRequestMethodを使用することをお勧めします。これは、私がテストしたすべてのサーバー、つまりファイルサイズを返さないサーバーでも機能します。

WebRequestMethods.Ftp.GetDateTimestamp 
+0

また、他のアイデアは、 'request.Method = WebRequestMethods.Ftp.ListDirectoryDe​​tails;'を使用し、リストを解析してflieを見つけることです。 FTP Web要求の種類のすべてがMicrosoftによって適切に実装されているわけではないためです。 – Marcin

+0

返信ありがとうございます、その作業ファイル............ – LetMeIN

関連する問題