Re: TKFPDLL_1.3.8-1でのフォルダ表示について ( No.1 ) |
- 日時: 2008/04/22 07:16
- 名前: Toki◆pRU.c9X.EOI
- ご指摘のようにタイムスタンプに「年」の文字があることが取得に失敗する原因となっています。
取得リストの解析方法である正規表現を書き換えることで、取得可能になると思います。
TKFP.Net.FtpClientクラスでサーバーに接続する前に以下の処理を追加してみてください
TKFP.IO.UnixListDataLoader ListDataLoader = new TKFP.IO.UnixListDataLoader(); ListDataLoader.Pattrens = new string[] { @"(?<Permission>[ldrwxsStT\-]{10}) +[^ ]+ +(?<User>[^ ]+) +(?<Group>[^ ]+) +(?<Length>[\d]+) +(?<Month>[\d]+)月 +(?<Day>[\d]+)日 +((?<Year>[\d]+)年|(?<Hour>[\d]+):+(?<Minute>[\d]+)) +(?<Name>.+)" }; FtpClient.ListDataLoader = ListDataLoader;
TKFP.IO.UnixListDataLoaderはよく使われている3種類を登録して有りますが、
追加コードで、1種類のみの対応となります。
具体的な変更は「年」の文字を追加しただけです。
4種類目の解析方法として追加したい場合は、Pattrensの文字配列を一旦読み出した後、
目的の正規表現を追加した新しい配列を再登録してください。
|
Re: TKFPDLL_1.3.8-1でのフォルダ表示について ( No.2 ) |
- 日時: 2008/05/01 12:47
- 名前: LINK
- Toki殿
返信が遅れてすみません。 ご指導ありがとうございます。
早速、プログラムに組み込み確認してみます。
以上
|
Re: TKFPDLL_1.3.8-1でのフォルダ表示について ( No.3 ) |
- 日時: 2008/05/01 14:30
- 名前: LINK
- Toki殿
下記のような記述で最初に入っているパターンの書き換えを行おうと しましたがうまくいきませんでした。
--------------------- 'LIST情報の解析クラスを指定 FtpClient.ListDataLoader = New TKFP.IO.UnixListDataLoader '標準のFTP(デフォルト)
Dim ListDataLoader As New TKFP.IO.UnixListDataLoader ListDataLoader.Pattrens(0) = "(?<Permission>[ldrwxsStT\-]{10}) +[^ ]+ +(?<User>[^ ]+) +(?<Group>[^ ]+) +(?<Length>[\d]+) +(?<Month>[\d]+)月 +(?<Day>[\d]+)日 +((?<Year>[\d]+)年|(?<Hour>[\d]+) :+(?<Minute>[\d]+)) +(?<Name>.+)"
Debug.WriteLine(ListDataLoader.Pattrens(0))
----------------------- *Debug.WriteLineの結果 (?<Permission>[ldrwxsStT\-]{10}) +[^ ]+ +(?<User>[^ ]+) +(?<Group>[^ ]+) +(?<Length>[\d]+) +(?<Month>[\w]+) +(?<Day>[\d]+) +((?<Year>[\d]+)|(?<Hour>[\d]+):+(?<Minute>[\d]+)) +(?<Name>.+)
申し訳ありませんが再度ご教授をお願いします。 *最初の質問で環境を記載しておりませんでした。 OS:XP_Pro VB.NET2003
以上
|
Re: TKFPDLL_1.3.8-1でのフォルダ表示について ( No.4 ) |
- 日時: 2008/05/01 15:11
- 名前: LINK
- Toki殿
何度もすみません。 解決いたしました。 書き換えの意味を勘違い(と言うか理解していませんでした。)
下記、記述にて解決いたしました。
----------------------- 'LIST情報の解析クラスを指定 Dim ListDataLoader = New TKFP.IO.UnixListDataLoader '標準のFTP(デフォルト)
ListDataLoader.Pattrens = New String() { _ "(?<Permission>[ldrwxsStT\-]{10}) +[^ ]+ +(?<User>[^ ]+) +(?<Group>[^ ]+) +(?<Length>[\d]+) +(?<Month>[\w]+) +(?<Day>[\d]+) +((?<Year>[\d]+)|(?<Hour>[\d]+):+(?<Minute>[\d]+)) +(?<Name>.+)", _ "(?<Permission>[ldrwxsStT\-]{10}) +[^ ]+ +(?<User>[^ ]+) +(?<Length>[\d]+) +(?<Month>[\w]+) +(?<Day>[\d]+) +((?<Year>[\d]+)|(?<Hour>[\d]+):+(?<Minute>[\d]+)) +(?<Name>.+)", _ "(?<Permission>[ldrwxsStT\-]{10}) +[^ ]+ +(?<User>[^ ]+) +(?<Group>[^ ]+) +(?<Length>[\d]+) +(?<Month>[\d]+)月 +(?<Day>[\d]+)日 +((?<Year>[\d]+)|(?<Hour>[\d]+):+(?<Minute>[\d]+)) +(?<Name>.+)", _ "(?<Permission>[ldrwxsStT\-]{10}) +[^ ]+ +(?<User>[^ ]+) +(?<Group>[^ ]+) +(?<Length>[\d]+) +(?<Month>[\d]+)月 +(?<Day>[\d]+)日 +((?<Year>[\d]+)年|(?<Hour>[\d]+):+(?<Minute>[\d]+)) +(?<Name>.+)"}
FtpClient.ListDataLoader = ListDataLoader -----------------------
以上
|