[再要望]FTPでの表示・操作不具合No.05116
pinecone さん 04/04/14 17:47
 
秀丸1ユーザのpineconeです。お世話になっております。

HidemarnetExplorerのβ2が公開されましたが、SunOS5.8サーバにて
以前(http://www.maruo.co.jp/turukame/3/x04560_.html#4560)にも
出ていた以下の不具合が発生しています。

[内容]
FTPで開くとディレクトリ名の前に日付がついたまま表示されるため、
配下を辿ることができない(下のように表示される)
+…■ 14日 18:00 home

対応するのが難しいのでしょうか?それとも調査中なのでしょうか?
ずっと待っていますが、β2で解消されていないようなので再要望させていただきま
した。

よろしくお願いいたします。

[ ]
RE:05116 [再要望]FTPでの表示・操作不No.05119
Iranoan さん 04/04/14 19:50
 
 今日は、Iranoan です。
> HidemarnetExplorerのβ2が公開されましたが、SunOS5.8サーバにて
> 以前(http://www.maruo.co.jp/turukame/3/x04560_.html#4560)にも
> 出ていた以下の不具合が発生しています。
 同じ環境で、
> FTPで開くとディレクトリ名の前に日付がついたまま表示されるため、
> 配下を辿ることができない(下のように表示される)
> +…■ 14日 18:00 home
これは起きないのですが、「.」「..」を辿ると無限にループしていたり、先
頭が「.」の隠しディレクトリが見れません。

 Linux+wu-ftp Ver.2.6 では問題ないのですが...。

[ ]
RE:05116 [再要望]FTPでの表示・操作不No.05126
秀丸アドイン担当 さん 04/04/15 10:29
 

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

>>[内容]
>>FTPで開くとディレクトリ名の前に日付がついたまま表示されるため、
>>配下を辿ることができない(下のように表示される)
>>+…■ 14日 18:00 home
>>
>>対応するのが難しいのでしょうか?それとも調査中なのでしょうか?
>>ずっと待っていますが、β2で解消されていないようなので再要望させていただきま
>>した。

 DOSのDIRコマンドの結果通りに表示されているようですので現行のFTP処理と
しては間違っていないと思うのです。
 FTP処理の根本からの修正が必要だと思いますので今しばらくお待ちいただき
たいと思います。

 ご不便の欠かして大変申し訳ありませんがよろしくお願いします。

[ ]
RE:05119 [再要望]FTPでの表示・操作不No.05127
秀丸アドイン担当 さん 04/04/15 10:29
 

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

>>これは起きないのですが、「.」「..」を辿ると無限にループしていたり、先
>>頭が「.」の隠しディレクトリが見れません。

 こちらの方はβ3にて修正いたします。

 ご不便おかけしますがよろしくお願いします。

[ ]
RE:05127 [再要望]FTPでの表示・操作不No.05133
Iranoan さん 04/04/15 12:52
 
 秀丸アドイン担当さん今日は、Iranoan です。
> >>これは起きないのですが、「.」「..」を辿ると無限にループしていたり、先
> >>頭が「.」の隠しディレクトリが見れません。
>
>  こちらの方はβ3にて修正いたします。
 宜しくお願いします。

[ ]
RE:05126 [再要望]FTPでの表示・操作不No.05137
pinecone さん 04/04/15 16:26
 
pineconeです。

> DOSのDIRコマンドの結果通りに表示されているようですので現行のFTP処理と
>しては間違っていないと思うのです。
> FTP処理の根本からの修正が必要だと思いますので今しばらくお待ちいただき
>たいと思います。
>
早急ではありませんので、よろしくお願いいたします。

[ ]
RE:05137 FTPの不具合(ファイルサイズNo.05404
pinecone さん 04/05/27 22:00
 
1ユーザのpineconeです。いつもお世話になっております。

今までの件について確認してみたところ、以前のように日付のついたフォルダ名が
表示されてしまう現象は解消され、配下が辿れるようになりましたが、
すべてのファイルのサイズが0と表示され、実際に開こうとしても中身が空です。

ご確認願えますでしょうか?
よろしくお願いいたします。
[環境]
・SunOS5.8サーバ
・OS:WindowsNT
・秀丸Ver4.10 β31
・HidemarnetExplorerのβ4(Ver1.00.1213)


>  β3までにご報告頂いた大きな不具合に関しましては大体クリアできたのでは
> ないかと思います。
>
>  β4でFTPの処理を大幅に変更しましてファイルリストの取得方法や
> Passiveモードへの対応などを行いました。
>  ファイルリストの取得方法を変更したことにより以前問題となっていたピリ
> オードから始まるフォルダ名やファイル名が表示されないという問題は修正され
> ています。
>  ご確認くださいますようお願いします。


[ ]
RE:05404 FTPの不具合(ファイルサイズNo.05408
秀丸アドイン担当 さん 04/05/28 10:30
 

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

>>今までの件について確認してみたところ、以前のように日付のついたフォルダ名が
>>表示されてしまう現象は解消され、配下が辿れるようになりましたが、
>>すべてのファイルのサイズが0と表示され、実際に開こうとしても中身が空です。

 ファイルサイズが0というのはファイルリストの取得がうまくできていないと
いうことだと思いますので再度調査してみたいと思います。

[ ]
RE:05404 FTPの不具合(ファイルサイズNo.05410
秀丸アドイン担当 さん 04/05/28 11:48
 

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

 原因調査用のテスト版を作成してみました。
 http://www.hidemaru.interlink.or.jp/software/bin/he100t.lzh
 FTPサーバとのやり取りでファイルリストを取得する処理をログに記録するよ
うになっています。

 he100t.lzh を解凍すると hmnetex.dll のみ出てきます。
 これを現行の hmnetex.dll と置き換えて問題のFTPサーバに接続してファイル
リストを取得してください。
 キャッシュが使用されるとFTPサーバとのやり取りが発生しませんので「再読
み込み」にて取得してみてほしいです。

 hmnetex.dll と同じディレクトリ内の SOCKFTP.log というログが作成されま
すのでそのログを xxxxxxx@maruo.co.jp 宛てに送ってほしいです。

 お手数おかけして大変申し訳ありませんがよろしくお願いします。

[ ]
RE:05404 FTPの不具合(ファイルサイズNo.05411
アルビレオ さん 04/05/28 11:49
 
秀丸ユーザーのアルビレオです。

>今までの件について確認してみたところ、以前のように日付のついたフォルダ名が
>表示されてしまう現象は解消され、配下が辿れるようになりましたが、
>すべてのファイルのサイズが0と表示され、実際に開こうとしても中身が空です。

問題の起きるFTPサーバーにコマンドラインから接続して、dirコマンドの出力結
果をここに書くかメールで送れば、サイトー企画さんで該当するサーバーを探さ
なくて済むので早く対応できると思います。
(コマンドラインのftpクライアントはWindowsに標準で入っています)

あるいは公開されているFTPサーバーであれば、そのサーバーアドレスを伝える
と動作確認もできるのでさらにいいですが。

どうすればいいのかわからなければ無視してください。
サーバーに使われているOSがわかっているので、こうした方が手間を減らせると
いうだけの話ですから。

[ ]
RE:05410 FTPの不具合(ファイルサイズNo.05413
pinecone さん 04/05/28 14:40
 
pineconeです。いつもながらの素早い対応有難うございます。
(わざわざモジュールまで作っていただき、大変恐縮しております。)

13時くらいに、下記メール宛にログを送らさせていただきました。
※連絡が遅くなりまして、申し訳ございませんでした。
>
> 原因調査用のテスト版を作成してみました。
> http://www.hidemaru.interlink.or.jp/software/bin/he100t.lzh
>  :(省略)
> hmnetex.dll と同じディレクトリ内の SOCKFTP.log というログが作成されま
>すのでそのログを xxxxxxx@maruo.co.jp 宛てに送ってほしいです。
>
> お手数おかけして大変申し訳ありませんがよろしくお願いします。
こちらこそ、宜しくお願いいたします。

[ ]
RE:05411 FTPの不具合(ファイルサイズNo.05414
pinecone さん 04/05/28 14:49
 
アルビレオさん、コメントありがとうございます。

>
>問題の起きるFTPサーバーにコマンドラインから接続して、dirコマンドの出力結
>果をここに書くかメールで送れば、サイトー企画さんで該当するサーバーを探さ
>なくて済むので早く対応できると思います。
>(コマンドラインのftpクライアントはWindowsに標準で入っています)
>
すみませんが、あまりよくわかってません&ちょっと忙しくて...
でも、あとでチャレンジしてみます。
(で、必要なら出力結果をアップしますが。> 秀丸アドイン担当殿)

>あるいは公開されているFTPサーバーであれば、そのサーバーアドレスを伝える
>と動作確認もできるのでさらにいいですが。
>
会社内のローカルサーバなもので。
自分としては、同じ現象が発生している方にも是非確認していただきたいです。
(仕事の合間をぬって動作確認をしているため、なかなか時間的に余裕がないです)

[ ]
RE:05414 FTPの不具合(ファイルサイズNo.05432
セイジ さん 04/05/29 22:43
 
pineconeさんこんにちは。

>自分としては、同じ現象が発生している方にも是非確認していただきたいです。
>(仕事の合間をぬって動作確認をしているため、なかなか時間的に余裕がないです)
>
私も同環境にて問題が発生しています。

私も業務で使用しているのですが Excel のVBAからアクセスしても
同じような事象に遭遇しています。

Public Declare Function FtpFindFirstFile Lib "WinInet.DLL" Alias
"FtpFindFirstFileA" _
    (ByVal hFtpSession As Long, _
     ByRef lpszSearchFile As Any, _
     ByRef lpFindFileData As WIN32_FIND_DATA, _
     ByVal dwFlags As Long, _
     ByVal dwContext As Long) As Long

Public Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName(0 To (260 - 1)) As Byte
    cAlternate(0 To (14 - 1)) As Byte
End Type

とかでアクセスしてたら cFileName のところが「日付とファイル名」の
戻りになっていた気がします。。。
回避方法が分からないので強引にファイル名部分だけ加工して
表示させています。
Sun だけ構造体の位置が違うのでしょうか???

Hidemarnet Explorer はVB製みたいですがどのような方法でFTPアクセス
しているのでしょうか? WinInet? WinSock? それとも自前?
もし宜しかったら教えていただけないでしょうか?
私のVBAの方もコード書き直したいので… (^-^;
もちろんSunの問題回避対応後ですが…。

宜しくお願いいたします。

[ ]
RE:05432 FTPの不具合(ファイルサイズNo.05435
アルビレオ さん 04/05/30 01:29
 
秀丸ユーザーのアルビレオです。

>Sun だけ構造体の位置が違うのでしょうか???
>
>Hidemarnet Explorer はVB製みたいですがどのような方法でFTPアクセス
>しているのでしょうか? WinInet? WinSock? それとも自前?
>もし宜しかったら教えていただけないでしょうか?
>私のVBAの方もコード書き直したいので… (^-^;
>もちろんSunの問題回避対応後ですが…。

WinInet や WinSock は関係ありません。
WinSockを通った後のデータの内容の問題です。

早い話がFTPのdirコマンドによって返されるファイルリストのテキスト形式が違
うためです。
これはコマンドプロンプトのdirコマンドと似たようなものですが、FTPサーバー
によってはdirコマンドの出力が微妙に違う形式になっていることがあるため、
たとえばファイルサイズとして取り込んだ文字列が実は日付けだったというよう
なことが起こります。

そのため一般的なFTPクライアントではFTPサーバーの種類を識別して、それに合
わせた形式でファイルリストを取り込む、そのためにホストの種類ととファイル
リスト形式の対応付けリストを内部に持つというめんどくさいことをしています。
(FFFTPなどでは、「ホストの種類」という設定項目があります)

実際にコマンドラインのFTPコマンドでdirコマンドの出力結果を見れば、一般的
なFTPサーバーとSunのFTPサーバーの違いを確認できると思います。

[ ]
RE:05435 FTPの不具合(ファイルサイズNo.05437
セイジ さん 04/05/30 11:16
 
アルビレオさんこんにちは。

>WinInet や WinSock は関係ありません。
>WinSockを通った後のデータの内容の問題です。
>
私はHidemarnet Explorerがどういう手順でFTP取得しているかなって
気になっているだけですので…別にこれらのせいにはしていませんよ。
まぁこれらAPIで吸収してくれれば私みたいに適当にえいやぁーで
プログラム書いている人にはありがたいのですが…。

>早い話がFTPのdirコマンドによって返されるファイルリストのテキスト形式が違
>うためです。
>
要するにサーバー毎に構造体の型が違うということですよね?
lsコマンドでなくてdirコマンドですか?
dirとは発想がありませんでした。(Winのみかと思ってました)
明日でも調べてみたいと思います。

>(FFFTPなどでは、「ホストの種類」という設定項目があります)
>
「ホストの種類」はデフォルトでSunOSもそれ以外も問題なくデータ受信
できているようです。ってことでFFFTPが中で自動で判定しているのかなと
FFFTPのソース落として見ているのですが…。
私の気分が乗っていないのでもう少し解析に時間かかりそうです。。。
(最近Cの頭でないので…解析のポイントがずれているみたいで…)

> 原因調査用のテスト版を作成してみました。
> http://www.hidemaru.interlink.or.jp/software/bin/he100t.lzh
>
こちらのファイルが無くなっているのでおそらく対応されていると思うので
そちらに期待したいと思います。

[ ]
RE:05437 FTPの不具合(ファイルサイズNo.05444
アルビレオ さん 04/05/30 18:43
 
アルビレオです。

>私はHidemarnet Explorerがどういう手順でFTP取得しているかなって
>気になっているだけですので…別にこれらのせいにはしていませんよ。
>まぁこれらAPIで吸収してくれれば私みたいに適当にえいやぁーで
>プログラム書いている人にはありがたいのですが…。

FTPプロトコルはLISTコマンドによる詳細なファイルリストの取得を除けば非常
に互換性の高い、サーバーの違いを無視できる作りになっています。
NLISTコマンドというファイル名だけのリストを取得するコマンドもあって、フ
ァイル名だけだからサーバーの違いは気にしなくてよくなりますが、当然ファイ
ルサイズや日付け、所有者名やパーミッションは取得できません。
(こういった属性がOSやファイルシステムに依存しているので)

ファイルリストの取得をしないとか、ファイルリストの表示にIEコンポーネント
を利用すればどうにかなるんですが、鶴亀がそうであるようにIEコンポーネント
を利用しないで実現するのも売りにしてますからね。

>要するにサーバー毎に構造体の型が違うということですよね?

なぜそこまで構造体にこだわるのかわかりません。
FTPやHTTPやPOPのような基本となるプロトコルは、すべてテキストのやり取りで
す。構造体などの出る幕はありません。

そりゃサーバー内部では構造体も使っているでしょうけど、クライアントに渡さ
れるファイルリストは単なるテキストです。クライアントは構造体について考え
る必要はありません。

150 Opening ASCII mode data connection for '/bin/ls'.
total 166
-rw-r--r--  1 ftpadmin  ftp     23 Nov 17 03:11 ftpmotd
-rw-r--r--  1 ftpadmin  ftp     37 Nov 17 03:10 group
-rw-------  1 ftpadmin  ftp    216 Nov 17 03:06 master.passwd
-rw-r--r--  1 ftpadmin  ftp  40960 Nov 17 03:07 pwd.db
-rw-------  1 ftpadmin  ftp  40960 Nov 17 03:07 spwd.db
226 Transfer complete.

普通はこんな感じのリストを受け取って、スペースで区切られた各項目をクライ
アントが認識するわけです。
だぶんSunのFTPサーバーでは項目がずれたりしていて、別の項目(たとえば
'ftp')を「サイズ」と勘違いして取り込んでしまったのでしょう。

>lsコマンドでなくてdirコマンドですか?
>dirとは発想がありませんでした。(Winのみかと思ってました)

両方あります。lsコマンドだとファイル名のみのリストを取得します。
ちょっと説明がごっちゃになってしまいましたが、dirやlsはコマンドライン版
のFTPクライアントに対してキーボードなどから送るコマンドで、サーバーに送
られるコマンドとしてはdir→PORT+LIST、ls→PORT+NLISTになります。
dir/lsを実行するとポートを開いて…という前処理も行なうので完全に同一では
ないし、LIST/NLISTコマンドとして話した方が正確でしたね。すみません。

>明日でも調べてみたいと思います。

webで「FTP コマンド」を検索すれば日本語で解説されたものはたくさん見つか
ります。私はFTPサーバーによる違いに触れているものは見つけることができま
せんでしたが…
最近はほとんどがUNIX standard形式で、気にする必要が少なくなってますから
ね。(Sunのサーバーでも、Solarisならたぶん標準形式だろうし)

>>(FFFTPなどでは、「ホストの種類」という設定項目があります)
>>
>「ホストの種類」はデフォルトでSunOSもそれ以外も問題なくデータ受信
>できているようです。ってことでFFFTPが中で自動で判定しているのかなと
>FFFTPのソース落として見ているのですが…。

その通りです。FTPは接続したときに

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ftp.ash.jp FTP server (Version 6.00) ready.

のように、最後の行でサーバーの種類を文字列として返すことになっているので、
「ホストの種類」を「自動」に設定してあればこれによって動作を切り替えます。

もうHidemarnetExplorerではなくFTPの説明になってしまっているので、あとは
自力で調べてみてください。
解説を読むだけでなく、コマンドライン版のftpで実際の動きを見たほうが早い
ことも多いです。
(というか、コマンドライン版のftpを試してみればここで質問しなくてもわかっ
たこともあったと思うのですが)

[ ]
RE:05444 FTPの不具合(ファイルサイズNo.05453
セイジ さん 04/05/31 19:25
 
アルビレオさんホントいろいろアドバイスありがとうございます。
いろいろ考えたのですが何かポイントがずれてきている気がするので
この話題に私は(あまり)加わらないようにします。

※ レス不要です。ご理解お願いします。

[ ]
RE:05453 FTPの不具合(ファイルサイズNo.05458
アルビレオ さん 04/05/31 21:08
 
アルビレオです。

>※ レス不要です。ご理解お願いします。

とのことですが、なんとなくずれている部分がわかったので書かせてもらいます。
やっぱり的外れだったら無視してください。

セイジさんはVBAから受け取る構造体を気にしているみたいですが、先に書いた
ようにFTPから構造体の形で送られているわけではありません。
FTPから送られるのは単なる文字列で、VBAのランタイムルーチンがこの文字列を
解析して構造体にセットしているわけです。
そしてVBAのランタイムもHidemarnetExplorerと同様にごく一般的(UNIX
standard)なファイルリストの形式にしか対応していないのでSun OS 5.8ではフ
ァイルリストをうまく取得できないわけです。
だからInternetExplrerでFTPに接続しても同じことが起こる可能性はありますね。

こうなるとVBA経由でFTPに接続している限りはどうしようもないと思います。
そのためFFFTPのような専用ソフトでは名前解決やTCPレベルの接続はWindowsで
用意された仕組み(WinSockなど)を使っていますが、FTPとのやりとりは自前の処
理で対処しています。

と、これを書きながらwebを検索していたら原因らしい記述がありました。
http://fc2bbs.com/bbs?action=message&uid=23967&tid=327919&mid=843119
日本語モードですか…原因が同じかどうかはわかりませんが、日本語モードにな
っているのならどちらかというとザーバー側でなんとかして欲しいところですね。

こういうのがあるからコマンドライン版のftpコマンドで確認、という手段を知
っていると早く解決できるんですが、単なるぼやきなので気にしないでください。

[ ]
RE:05432 FTPの不具合(ファイルサイズNo.05560
秀まるお さん 04/06/15 18:55
 
 うちの社員が誰も返事しないので担当外の僕がコメントしますが、以前は
WinInet.dllを使ってやってたけども、SunOS対応のために、WinInetを使わずに、
自前でソケットを使ってやりとりするようにした、という話を担当者から聞きま
した。

 WinInet.dllを使う限りどうしようもないとか言ってました。

 もっと正確な情報が必要でしたら、あらためて秀丸アドイン担当に催促して欲
しいです。

[ ]
RE:05432 FTPの不具合(ファイルサイズNo.05563
秀丸アドイン担当 さん 04/06/16 11:18
 

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

>>Hidemarnet Explorer はVB製みたいですがどのような方法でFTPアクセス
>>しているのでしょうか? WinInet? WinSock? それとも自前?
>>もし宜しかったら教えていただけないでしょうか?
>>私のVBAの方もコード書き直したいので… (^-^;
>>もちろんSunの問題回避対応後ですが…。

 どもお返事が遅くなってしまってすいません。
 すっかり失念していました。

 その後SunOSの方の問題は何とかクリアしましたが結局のところサーバの種類
によってサーバから返されるファイルリストのフォーマットが違うのでちょっと
イレギュラー的なフォーマットですとWininet のFtpFindFirstFileなどですと対
応できないようです。
 Hidemarnet Explorerでは結局Winsockを使って生のファイルリストを取得して
それを自前で構造体に入れて使っています。

 この方式にして生のファイルリストを見て思ったことは、返されるファイルリ
ストはまったく千差万別でOSによっては2バイト文字が混入していたりあるべき
情報が無かったりまったく違う形をしていたりとかなり驚きました。
 私はある程度規定のフォーマットどおりになっているものだと思っていました。

 現行のHidemarnet Explorerではかなり柔軟に対処できるようにしましたがそ
れでも正常に表示できないサーバがあり対応作業を行っています。

 結論を申しますと。
 Wininetでは正確なファイルリストの取得はできないということになります。
 「.」で始まるファイル名などは取得できませんしファイルリストに2バイト
文字が有ると正常に表示されないようです。

 ただ接続するサーバが限定されていてwininetでも問題が無いのであれば
wininetの方が格段に楽だと思います。
 Hidemarnet Explorer は、どんなサーバに接続されるのかまったく予測できま
せんのでそうなった場合でも対応可能なように winsock を利用することにしま
した。

 この程度の情報でよろしいでしょうか?

[ ]
RE:05563 FTPの不具合(ファイルサイズNo.05580
セイジ さん 04/06/16 22:34
 
Wininetでキラリと光るテクニックがあるのかと思いましたが
結局ゴリゴリ書かないといけないのですね。
VBなんだから楽できると思ったのですが…残念です。
自分でゴリゴリDLL作っておいた方がいいようですね。。。

わざわざ返答していただきありがとうございました。

[ ]