スペースが含まれるファイル名のファイルNo.06908
ivory-star さん 05/03/25 11:13
 
ivory-starです。

ファイルを複数選択して「送る」で開くとき、ファイル名にスペースが
含まれるものと含まれないものが混在していると、いくつかのファイル
が開かれない事象が発生します。例えば、

aaa.txt
bb b.txt
cc c.txt
ddd.txt
ee e.txt

上記の5つのファイルを「送る」で開くと、aaa.txt、cc c.txt、
ddd.txtの3つだけが開かれ、bb b.txtとee e.txtは開かれません。

ちなみに、スペースが含まれるファイル(bb b.txt、cc c.txt、
ee e.txt)だけを選択して「送る」を実施した場合は、3つとも正常に
ファイルが開かれました。

Windows2000+β9、タブモード使用です。

[ ]
RE:06908 スペースが含まれるファイル名のNo.06911
秀丸担当 さん 05/03/25 13:59
 

>ファイルを複数選択して「送る」で開くとき、ファイル名にスペースが
>含まれるものと含まれないものが混在していると、いくつかのファイル
>が開かれない事象が発生します。例えば、

同じファイル名をデスクトップ上に作成して、Windows2000で試してみましたが、
問題ありませんでした。
フルパスにしたときの長さとかも関係しているかもしれません。
フルパスにするとどのようになるでしょうか。
あと、「送る」のショートカットに起動オプションが付いていると何か違うのか
もしれません。起動オプションを付けているということはないでしょうか。
他に何か心当たりのあることがあったら、何でもいいので教えていただけると何
かわかるかもしれません。

[ ]
RE:06911 スペースが含まれるファイル名のNo.06913
ivory-star さん 05/03/25 14:27
 
秀丸担当さん、こんにちわ。

デスクトップ上にファイルを置くと、ファイルパスにスペースが含まれる
ため、事象は発生しないようです。
Cドライブ直下とか、パスに空白が含まれない状態で再度テストして
いただけませんでしょうか?

ちなみに、起動オプションは何も設定していませんです。


C++でテストコード書いて、受け取ったパラメータを確認してみました。

[ソース]
#include <fstream>
#include <windows.h>

int WINAPI
WinMain(HINSTANCE,HINSTANCE,LPSTR p_cmdline,INT)
{
 std::ofstream f("param.txt");
 if ( !f ) return 1;
 f << "param[" << p_cmdline << "]" << std::endl;
 return 0;
}

[出力結果]
param[C:\aaa.txt "C:\bb b.txt" "C:\cc c.txt" C:\ddd.txt "C:\ee e.txt"]

とりあえずフルパスで受け取っても、せいぜい60文字ちょいなので、
長さ的には問題ないと思います。

[ ]
RE:06913 スペースが含まれるファイル名のNo.06914
秀丸担当 さん 05/03/25 14:59
 

>デスクトップ上にファイルを置くと、ファイルパスにスペースが含まれる
>ため、事象は発生しないようです。
>Cドライブ直下とか、パスに空白が含まれない状態で再度テストして
>いただけませんでしょうか?

ルートに作成して再現させることができました。
修正させていただきます。

[ ]
RE:06914 スペースが含まれるファイル名のNo.06941
ivory-star さん 05/03/28 11:35
 
β10で正常動作を確認致しました。
対応ありがとうございます。

[ ]