ディレクトリが存在するかどうかを確認するこの FTP メソッドがあります。最初は問題なく動作しましたが、ディレクトリが存在しなくても true を返すようになりました。私は多くのことを試し、ディレクトリが存在するかどうかを判断するために使用できる応答オブジェクトのプロパティを確認するためにブレークポイントを設定しました。インターネットも検索しましたが、解決策がうまくいかないようです。これが私のFTPメソッドです。
public bool directoryExists(string directory)
{
/* Create an FTP Request */
ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + directory);
/* Log in to the FTP Server with the User Name and Password Provided */
ftpRequest.Credentials = new NetworkCredential(user, pass);
/* Specify the Type of FTP Request */
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
try
{
using (ftpRequest.GetResponse())
{
return true;
}
//var response = ftpRequest.GetResponse();
//if (response != null)
// return true;
//else return false;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return false;
}
/* Resource Cleanup */
finally
{
ftpRequest = null;
}
}
そして、ディレクトリが存在しない場合でもそれを呼び出して true を返すメソッドは次のとおりです。
private string getDirectory(ref FtpClass ftp, string internalID)
{
string remoteSubPathDel = internalID + "\\trunk\\prod\\xml\\delete";
string remoteSubPathUpdate = internalID + "\\trunk\\prod\\xml\\update";
string remoteSubPathNew = internalID + "\\trunk\\prod\\xml\\new";
if (ftp.directoryExists(remoteSubPathDel))
return remoteSubPathDel;
else if (ftp.directoryExists(remoteSubPathUpdate))
return remoteSubPathUpdate;
else if (ftp.directoryExists(remoteSubPathNew))
return remoteSubPathNew;
else
return String.Empty;
}
誰かが助けてくれることを願っています。ありがとう!:)