• ベストアンサー

C# FTPサーバ カレントディレクトリのパス取得

C# .NETでFTP送信するツールを作成しているのですが、FTPサーバーのカレントディレクトリのパスが取得できません。 ftp://IPアドレスで接続して、WebRequestMethods.Ftp.PrintWorkingDirectoryを使用して色々試してみましたが書き方が悪いせいかPWDとしか返ってきません。 詳しい方ご教授宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

'コード using System; using System.Net; using System.IO; using System.Text; namespace Q6728181 { class MainClass { public static void Main (string[] args) { FtpWebRequest fwb = (FtpWebRequest)WebRequest.Create("ftp://localhost/"); fwb.Credentials = new NetworkCredential("himajin100000","aaaa"); fwb.Method = WebRequestMethods.Ftp.PrintWorkingDirectory; // Stream側に入ってはいないらしい。 System.Console.WriteLine(((FtpWebResponse)fwb.GetResponse()).StatusDescription); } } } //結果: //257 "/" is current directory //ちなみにLISTの場合は、 //StreamReader.ReadLineでそのディレクトリ内にあったもの、すなわち //abc //efg //が表示された。 //検証環境 BlackJumboDog(C#製各種サーバ,FTPサーバのユーザーを登録後、ACLで「禁止する」を選択し、中身をそのまま空に),FileZilla(検証用), 自分で書いた上記のコード)

tanakaxld
質問者

お礼

ありがとうございます。無事表示させることができました。

その他の回答 (1)

回答No.2

でもその用途だと、 fwb.GetResponse().ResponseUri.AbsolutePath とかの方が楽かもしれないなーと後から思った。

関連するQ&A

  • カレントディレクトリの確認

    仕事の現場でLinuxサーバのログ取得を行っています。 流れとしてWindowsサーバにログインし、 Tera TermでLinuxサーバに入って ftpコマンドでWindowsサーバに接続し、 mputしています。 ※Linuxサーバ → Windowsサーバ ftp IPアドレスでWindowsサーバへ接続後、 カレントディレクトリを確認するためにpwdコマンドを実行したところ、 結果が表示されませんでした。 他に確認する手段として、どういったコマンドがありますでしょうか。

  • FTPアクセス後のカレントディレクトリ確認

    QNo.9085357 / カレントディレクトリの確認 QNo.9085267 / Windowsのディレクトリ階層 QNo.9084980 / dirコマンド すみません、上記でいくつか質問させていただきましたが、 一番知りたい内容を本番号で質問させてください。 ftpコマンドでWindowsサーバに入って pwdコマンドの代わりにdirコマンドを打っています。 何も表示されないのに打つ理由は何でしょうか。 ※その後にcd XXXでXXXディレクトリに移動しています。 全体のパスは以下の通りです。 D:\ftproot\Administrator\XXX  XXXは手動で作成したフォルダで、 何も制限はかかっていないと思われます。

  • カレントディレクトリの取得

    カレントディレクトリのファイルパスを取得したいのですが今ひとつ納得が出来ずに困っています。 現在は下記のようにやっていますがあまりに迂遠な気が… 定数か関数であっても良さそうなものですが見つけられませんでした。 ご助言をいただければ幸いです (_ _) $current_dir = explode('/', $_SERVER['PATH_TRANSLATED']); array_pop($current_dir); $current_dir = implode('/', $current_dir); if (empty($current_dir)) $current_dir = '/';

    • ベストアンサー
    • PHP
  • カレントディレクトリの取得

    お世話になります。 バッチファイルでの処理中にカレントディレクトリをフルパスで取得し 変数に値を格納したいのですが、やり方が分かりません。。 いろいろ調べた結果、カレントディレクトリの取得は「CD」 変数への格納は、「==」or「set」なのかな?ってぐらいの知識レベルです。 上記のコマンド以外でも構いませんので、カレントディレクトリを取得し 変数に値を格納する方法を、記述の仕方を含めてご教示くださいませ。 宜しくお願い致します。

  • FTPサーバ(IIS)のファイルをwgetで取得することができません。

    FTPサーバ(IIS)のファイルをwgetで取得することができません。 ※IISの既定のFTPサイト(通常C:\Inetpub\ftproot)直下にftpuser1 というフォルダを作成しておくと、このFTPサイトに ftpuser1でログオンした際、 カレント・フォルダが「/ftpuser1」となります。 1.DOS窓から次のコマンドを入力します。 d:\wget\wget.exe ftp://○.○.○.○/ftpuser1/test.txt --debug --append-output=d:\wget\log.txt --tries=3 --wait=60 --directory-prefix=d:\wget\test --ftp-user=ftpuser1 --ftp-password=ftpuser1 2.失敗したのでログを確認します。 「ftp://○.○.○.○/ftpuser1/」にあるファイルを取得したいのですが、 「ftp://○.○.○.○/ftpuser1/ftpuser1/」を参照しに行ってました。 ↓ログ Logging in as ftpuser1 ... 220 Microsoft FTP Service --> USER ftpuser1 331 Password required for ftpuser1. --> PASS ftpuser1 230 User ftpuser1 logged in. Logged in! ==> SYST ... --> SYST 215 Windows_NT done. ==> PWD ... --> PWD 257 "/ftpuser1" is current directory. done. ==> TYPE I ... --> TYPE I 200 Type set to I. done. changing working directory Prepended initial PWD to relative path: pwd: '/ftpuser1' old: 'ftpuser1' new: '/ftpuser1/ftpuser1' ==> CWD /ftpuser1/ftpuser1 ... --> CWD /ftpuser1/ftpuser1 550 /ftpuser1/ftpuser1: The system cannot find the file specified. No such directory `ftpuser1'. Closed fd 908 ちなみにフォルダ「ftp://○.○.○.○/ftpuser1/ftpuser1/」を作成したところ、 ファイルは取得できました。 なぜ「ftp://○.○.○.○/ftpuser1/ftpuser1/」を参照しに行くのか分かりません。 原因等分かりましたらご教授お願いします。 環境 ・接続先FTPサーバ  Windows Server 2003 R2  IIS 6.0 ・接続元  Windows 2000  wget 1.11.4

  • Linuxのchdir(カレントディレクトリが移動できない)

    環境はLinuxおよびcygwinです。 chdir()関数でカレントディレクトリを移動するプログラムを作成しようとしていますが、プログラムの実行後、「pwd」コマンドでカレントディレクトリを確認してもカレントディレクトリが移動されていません。 ソースコード(一部) chdir("/home/hogehoge"); としても、カレントディレクトリは移動せず、pwdコマンドで、 /home/hogehoge になりません。 chdir()関数はエラーを返していません。 もしくは、cdコマンドのソースコードが入手できれば、一番よいのですが・・・Linuxのカーネルやその他のソースコードを展開してもどこにあるか分かりません。 どなたかご教授お願いします。

  • VB2008でFTPでのディレクトリー存在確認のやり方が分からない。

    VB2008でFTP転送のブログラムを組んでいるのですが、ディレクトリーの存在確認のところで詰まっています。 ネット検索を行うと、下記記述が幾つか出てきますが、使い方、記述方法が分かりません。 if文を使い、FALSE か TRUEかで確認を行いたいと思っております。 ご存じの方がいらっしゃいましたらご教授下さいませ。 当方は初心者です。 宜しく御願い致します。 WebRequestMethods.Ftp.ListDirectory WebRequestMethods.Ftp.ListDirectoryDetails

  • FTPサーバについて

    初歩的な質問ですいません。 あるFTPサーバに、<ftp IPアドレス>でログインした場合について教えてください。 FTPサーバにあるファイルを<get ○○>でダウンロードした場合、ダウンロードしたファイルは、Red hat、Windowsそれぞれどのディレクトリに保存されるのでしょうか。 初歩的な質問ですいませんが教えていただけましたら幸いです・

  • FTPサーバーに接続できない

    自宅にてFTPサーバーをたてました。 同じLANからプライベートIPアドレスを指定しての接続はできましたが、外部からドメイン名またはIPアドレスを指定して接続ができません。(ダイナミックDNSでドメイン名取得しています。) どうかご教授お願いします。 FTPサーバーのOSはXP ProfessionalでTiny FTP Daemonを使用しています。 クライアントもXPでIE6です。

  • C#でカレントディレクトリの取得方法について

     自作の.exeファイルの置かれているディレクトリ場所を  取得するプログラムを作成したく思います・  自作exeファイルのディレクトリ構造は、「*:*/hoge/plugin/自作.exe」です。  この時、一個上のディレクトリを参照して、ディレクトリパスを取得する  方法などがありましたらおしえて頂きたく思います。  ちなみに、以下のプログラムではできなかったのですが、参考までに載せました。  よろしくお願いします。  string stParentName = System.IO.Path.GetDirectoryName(@"*:*/hoge/plugin/自作.exe"); MessageBox.Show(stParentName);