Kakeishi_Misa
@Kakeishi_Misa

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【C#】社内サーバーにアクセスしたいが、FtpWebResponseでエラーになる

Q&A

Closed

解決したいこと

社内サーバーに保管されているファイルの更新日時を取得したいです。
社内サーバーにアクセスしたいが、GetResponseメソッドでエラーになります。
確認したいこととしては下記2点です。
①URLの指定方法は正しいか
②FtpWebResponseを受け取るにはどうすれば良いか

記載したコード

string url = @"ftp://192.168.xx.xx/〇〇〇〇/□□□□/Test.docx";
                Uri uri = new Uri(url);

                //FtpWebRequestの作成
                System.Net.FtpWebRequest ftpReq = (System.Net.FtpWebRequest)System.Net.WebRequest.Create(uri);
                //MethodにWebRequestMethods.Ftp.GetDateTimestamp(MDTM)を設定
                ftpReq.Method = System.Net.WebRequestMethods.Ftp.GetDateTimestamp;

                //FtpWebResponseを取得
                System.Net.FtpWebResponse ftpRes =
                    (System.Net.FtpWebResponse)ftpReq.GetResponse(); // ★エラー発生★
                //最終更新日時を表示
                Console.WriteLine(ftpRes.LastModified);

                MessageBox.Show(ftpRes.LastModified.ToString());

「GetResponse()」のところで「System.Net.WebException: 'Unable to connect to the remote server'」というエラーが出ます。

■確認したいこと
①エクスプローラーのパスを確認した時、
 社内サーバーのパスは「//192.168.xx.xx/〇〇〇〇/□□□□/Test.docx」となっていたため、
 文字列urlにはそのまま指定しましたが、
 「System.Net.FtpWebRequest ftpReq = (System.Net.FtpWebRequest)System.Net.WebRequest.Create(uri);」部分で
  FtpWebRequestに変換できませんとエラーがでたので、頭にftpをつけてエラーが出なくなりました。
  この対応方法は正しいでしょうか。

②現在のコードではリモートサーバーに接続できないというエラーが出ますが、
 どのようにすれば解消できますでしょうか。

0

3Answer

Comments

  1. @Kakeishi_Misa

    Questioner

    「ファイル共有サーバ」と「FTPサーバ」って別物なんですね。。。

    FTPコマンド実行すると「接続がタイムアウトしました」となり
    FTPサーバは動いてないようです。。。


    ネットで少し調べてみると
    「WNetAddConnection」で
    ファイル共有サーバに接続、ファイル操作ができそうなので
    もう少し調べてみます。
    ありがとうございます。

まずはコマンドプロンプトでWindows標準のFTPコマンドとか、フリーのFTPクライアントなどで
「社内サーバがFTPサーバとして稼働しているか」を確認してみた方がいいかもしれません。

エクスプローラーのパスを確認した時

これだとファイル共有サーバなだけで、FTPサーバが動いているかについて不安があるので…

1Like

Comments

  1. @Kakeishi_Misa

    Questioner

    「ファイル共有サーバ」と「FTPサーバ」って別物なんですね。。。

    FTPコマンド実行すると「接続がタイムアウトしました」となり
    FTPサーバは動いてないようです。。。


    ネットで少し調べてみると
    「WNetAddConnection」で
    ファイル共有サーバに接続、ファイル操作ができそうなので
    もう少し調べてみます。
    ありがとうございます。

エクスプローラーからファイルを見れるのであれば、普通に
System.IO.File.GetLastWriteTime(@"//192.168.xx.xx/〇〇〇〇/□□□□/Test.docx")
で取得すれば良いでしょう。

1Like

Your answer might help someone💌