質問: /aa/bb/cc/dd へのアクセス、アップロードは成功します。 このとき、user, pass は同じものを使っています。 また、コマンドプロンプトから ftp コマンドを使用すると(上記と同じ user, pass)、 /aa/bb/cc, aa/bb/cc/dd どちらのディレクトリにもアクセス、アップロードが成功します。 恐らくディレクトリのアクセス権限だと思い、コマンドプロンプトで ls -l を実行すると、 どちらも同様でした。 * /aa/bb/cc への ls -l 結果 drwxrwxr-x 469 user pass 125440 7月 18日 13:57 cc * /aa/bb/cc/dd への ls -l 結果 drwxrwxr-x 2 user pass 512 4月 24日 2019年 dd プログラムの修正で FtpWebRequest.GetResponse でアクセス成功させる方法があるでしょうか。 もしくは現状で失敗する理由を判断する方法があるでしょうか。
回答: 実運用が始まってしまったため、調査修正ができなくなってしまいました。 結局 ftpRes=null の場合でも処理終了しないようにして続行(ディレクトリ作成処理)することで、状況が改善しました。 よくよく確認したら、存在するディレクトリ /aa/bb/cc/ に対してではなく、存在しないディレクトリ /aa/bb/cc/xx に対して FtpWebRequest.GetResponse を行っていました。なので↑で説明している前提からして間違っていました。申し訳ありません。 この場合でも ftpRes = null にはならないと思っていたのですが、特にそのようなことはドキュメントに記述されていないですね。 SHOMI様ご指摘のように例外の Response, Status を確認すれば恐らく内容が分かったはずだと今になって気づきました。 Response, Status を(例外ではなく) ftpRes のプロパティと思い込んでいたため、ただ例外メッセージだけ見て「解らんなあ」とほざいておりました。 お恥ずかしい話で大反省しております。 例外の内容が確認できないのが心残りですが、とりあえず本件クローズとします。お手数おかけしました。