Windows用のFTPサーバ

Windows用のFTPサーバ

WindowsWindows用のFTPサーバ

疎通確認のテストの為に、Windows 上に FTP サーバを作ることになりました。調べてみたところ、モジュール自体は古いですが、Tiny FTP Daemon が人気そうだったので使ってみることにしました。Tiny FTP Daemon には FTP でアクセスした時のルートフォルダを指定でき、ftp://localhost/ で c:\ftp など特定のフォルダとやり取りができます。一般的な FTP サーバですね。

Tiny FTP Daemon

実際に、FFFTP などの FTP クライアントからの動作確認は特に問題ありませんでしたし、.NET C# の FtpWebRequest クラスで、このルートにあるフォルダ(ディレクトリ)やファイルの操作、そしてサブフォルダ内のファイルの閲覧は特に問題なくいけました。しかし、FtpWebRequest クラスで直接ルート配下のフォルダ(ディレクトリ)内にあるファイル取得ができません。550 エラーで、ファイルがないかアクセス権がないと怒られます。

例えば、ftp://localhost/test1.txt は取得(get)できますが、ftp://localhost/sub/test2.txt は取得できません。FTP サーバのログを追いかけてみると、ログインとルートフォルダまでの接続は確認できていますが、サブフォルダへの移動がされずにファイルにアクセスしています。

そこで、別の FTP サーバで試してみました。次に利用した FTP サーバは BlackJumboDog です。このツールは、FTP だけではなく Web や DNS など他のプロトコルにも対応したサーバソフトウエアです。

BlackJumboDog

この BlackJumboDog で構築した FTP サーバでは、FtpWebRequest クラスで ftp://localhost/sub/test2.txt の取得ができました。よって、切り分けとしては FtpWebRequest クラスやプログラムの問題ではなく、FTP サーバの問題ということになります。ソケットプログラムなどを使えば、Tiny FTP Daemon でも動作させることは可能なのでしょうか。

.NET Framework2.0 からは WebClient クラスでも FTP のファイル操作ができますが、FtpWebRequest の方が柔軟な対応ができると思います。サンプルプログラムなどは別途、.NET C# のジャンルの記事として紹介したいと思います。

最終更新日:

関連記事

人気記事

新着情報