プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております。

C#.netでWebClientやFtpWebRequestを使用して
FTPツールを開発していますが、ホームディレクトリより上の階層を参照する方法が見つかりません。

流れとしてはプロキシ サーバーまたはファイアウォールを経由してあるサーバにアクセスして一つ上の階層にあるフォルダにデータを送たいのです。アクセス権限はあります。

また、DOBONさんのところや他の方のプログラムなどを参考にしてプログラムからコマンドプロンプトを操作してFTPを使用してみようと思いましたがフリーズして上手くいきませんでした。

string[] strCmds = {@"/c ftp", @"/c localhost"@"/c user",@"/c password" };

for ( int i = 0; strCmds.Length; i++ )
{
psi.Arguments = strCmds[i];
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);

string results = p.StandardOutput.ReadToEnd();
p.WaitForExit();

Console.WriteLine(results);
}


このプログラムの修正方法、または他の方法がありましたら教えていただけるとありがたいです。

A 回答 (1件)

コマンドプロンプトで ftp コマンドを実行するプログラムですが、まず第一に、"cmd.exe" の指定がありませんよね。


psi.FileName = "cmd.exe";
( あるいは、psi.FileName = "command.com" ? 、それか、環境変数 ComSpec から取得するか。)
が必要だと思います。
それとコマンドライン引数ですが、このプログラムだと、for ループの一回目は "/c ftp" で実行し、
二回目は "/c localhost" で実行・・・となりますよね。
一回目、二回目・・・それぞれ別々のコマンドプロンプト画面となってしまうと思います。
コマンドラインでの実行方法については
http://www.atmarkit.co.jp/fwin2k/win2ktips/270ft …
を参考にされるとよいと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/06/22 20:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!