Ticket #26741

DispFileProperty()の修正案

Eröffnet am: 2011-11-13 22:26 Letztes Update: 2011-11-23 12:49

Auswertung:
(Anonym)
Verantwortlicher:
(Keine)
Typ:
Status:
Geschlossen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine

Details

テスト版のlocal.cのvoid DispFileProperty() には以下のコメントがあります。 // UNCでない場合に末尾に半角スペースを置くと拡張子の補完がされなくなる

Windowsの『ファイル名末尾の「.」、半角スペースは無視される』という仕様を意図していると思いますが、 拡張子補完の抑止目的には半角スペースではダメみたいです。 Windows7で試してみたところ半角スペース+拡張子のファイルが存在すると、それが優先されます。 もう一方の"."を追加した場合は、"."より前までのパスで処理するので期待通りの結果になるみたいです。 なんでこんな動きするのかドキュメントに書いてないですが、CreateProcess()にそれっぽい説明があります。 ということで、" "の代わりに"."を追記する実装をご検討下さい。

Ticket-Verlauf (3/6 Historien)

2011-11-13 22:26 Aktualisiert von: None
  • New Ticket "DispFileProperty()の修正案" created
2011-11-13 23:34 Aktualisiert von: s_kawamoto
Kommentar

ありがとうございます。その説明には気が付かなかったのですが、今調べてみたところ、LoadLibraryにも似たような説明がありますね。後程修正します。

2011-11-14 00:06 Aktualisiert von: s_kawamoto
Kommentar

残念ながらこの方法では意図したとおりに動作しませんでした。 "testdata"と"testdata..bat"を用意し、"testdata."として呼び出すと"testdata..bat"が表示されました。 他の方法を考えてみます。

2011-11-14 19:34 Aktualisiert von: None
Kommentar

不完全なバグレポートですみません。もうちょっとややこしい条件があったようです。
"C:\\tmp" に"testdata","testdata.bat","testdata .bat"がある状態で試してみたところ、 lpFileが絶対パスの場合はダメだけど、lpDirectoryを併用するとうまくいくようです。
4つの組み合わせで試したところ下記結果でした。なんでこんな変な仕様なんでしょうね…。
× lpDirectory=NULL; lpFile="C:\\tmp\\testdata "; ⇒ "testdata .bat"
× lpDirectory=NULL; lpFile="C:\\tmp\\testdata."; ⇒ "testdata.bat"
× lpDirectory="C:\\tmp"; lpFile="testdata "; ⇒ "testdata .bat"
○ lpDirectory="C:\\tmp"; lpFile="testdata."; ⇒ "testdata"
ちょこっと試したところだと、パスに空白が含まれる場合も大丈夫そうです。
これでもうまくいかないパターンがあったら、ごめんなさい!

2011-11-14 21:15 Aktualisiert von: s_kawamoto
Kommentar

他のファイルが見つからなくなるまで半角スペースを追加する方法で解決しました。 修正は次のバージョンに適用する予定です。 ご協力ありがとうございました。 http://git.sourceforge.jp/view?p=ffftp/ffftp.git;a=commit;h=700b7eb9066c105aaf9b42ad67ba43ee8c030f0b

2011-11-23 12:49 Aktualisiert von: s_kawamoto
  • Ticket Close date is changed to 2011-11-23 12:49
  • Status Update from Offen to Geschlossen

Dateianhangliste

Keine Anhänge

Bearbeiten

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Anmelden