ページ 11

[C#] FTPコマンドによるディレクトリ一覧

Posted: 2013年3月24日(日) 14:32
by オカピーα
こんにちは、オカピーです。
現在スキルアップのためにFTPクライアントを作成中です。
ここで質問なのですが、現在FtpWebRequestクラスを作成し、
MethodにListDirectoryDetailsを設定し、FTPサーバーのディレクトリ一覧を
取得するプログラムを組んでみました。
その結果、以下のコードが返ってきました。(一部編集しています。)

コード:

drwx---r-x   5 XXXXX   hpusers       200 Dec 17 20:17 .
drwx---r-x   5 XXXXX   hpusers       200 Dec 17 20:17 ..
-rw-r--r--   1 root     root            0 Nov  2 18:31 .Maildir_time
drwxrwx---   3 XXXXX   vchkpw         80 Nov  2 18:31 Maildir
drwx---r-x   2 XXXXX   hpusers        48 Nov  2 18:17 log
-rw-r--r--   1 root     root          781 Dec 17 20:17 mysql_.1355743036.dump
drwx---r-x   5 XXXXX   hpusers       160 Mar 22 12:30 public_html
もちろんこれで出来たのですが、FTPクライアントソフトである以上
GUI表示はもちろん実装する必要があります。
よって、ディレクトリ一覧をリストビューで表示しようとしましたが、
この帰ってきた文字列をどうカラムに設定したらいいのかが分かりません。
このような文字列を解析するにはどうしたらいいのでしょう?
正規表現を使うのでしょうか?しかし、お恥ずかしいことに正規表現はまったく書けません。
また、接続先のサーバーによっても帰ってくる文字列は違うのではないでしょうか?
そのような違いにどのように対処したらいいのでしょうか?

どなたか教えてください。よろしくお願いします。

Re: [C#] FTPコマンドによるディレクトリ一覧

Posted: 2013年3月24日(日) 15:21
by softya(ソフト屋)
正規表現は勉強したほうが良いと思いますが、これを解析するなら空白と改行コードで分解するだけなのでは?

Re: [C#] FTPコマンドによるディレクトリ一覧

Posted: 2013年3月24日(日) 18:55
by オカピーα
softya(ソフト屋) さんが書きました:正規表現は勉強したほうが良いと思いますが、これを解析するなら空白と改行コードで分解するだけなのでは?
なるほど、その線で出来そうですね!
しかし、http://www.atmarkit.co.jp/ait/articles/ ... ws001.html
によりますと、LISTコマンドからの返答内容に関するフォーマット規約は存在しないそうです。
ということは、それぞれを改行と空白で分解したものを
独自にフォーマットチェックする必要があるのでしょうか?

Re: [C#] FTPコマンドによるディレクトリ一覧

Posted: 2013年3月24日(日) 18:58
by softya(ソフト屋)
FTPサーバーデーモン毎に実装は違うかもしれませんね。
FFFTPなどはソース公開されているので、どうやっているか確認するしかないでしょう。

Re: [C#] FTPコマンドによるディレクトリ一覧

Posted: 2013年3月24日(日) 19:06
by オカピーα
softya(ソフト屋) さんが書きました:FTPサーバーデーモン毎に実装は違うかもしれませんね。
FFFTPなどはソース公開されているので、どうやっているか確認するしかないでしょう。
今FFFTPのソースを舐めるように見ていたところ、それらしいものが見つかりました!(filelist.c 3881行目)
これをもとに作っていこうと思います!ありがとうございました!