質問: lzhファイルを開こうとすると中身が空に見える 仕事で、あるソフトのサポートをしています。 先日、ユーザから私の会社のメールソフトを使ってメールを受けた時に、添付されていたlzhファイルが開けないというクレームがありました。 うちで提供しているのはwebメールソフトなのですが、添付されていたlzhファイルの名前部分をクリックすると、ファイルを「開く」か「保存」するかの選択画面が出て、そのまま開くと解凍ソフトの画面が開くのですが、中に登録されているファイルの一覧が空になっていると言われたのです。 そこで、こちらで色々調べてみました。 フリーのwebメールを使ってメールの送受信をしてみましたが、ここでも解凍ソフトの画面は立ち上がるものの中身が空になっていました。 これはうちのソフトの不具合ではなく、解凍ソフトの不具合では?と思い、「フォルダオプション」の「ファイルの種類」で「lzh形式」を開くソフトの指定を[lhut32]と[lhmelt]とで試したところ、両方ともng(中身が空)でした。 (但し、一旦pcに保存すると開けるようになります) 更に調べていると、「ファイルの種類」の指定で「open」アクションのアプリケーション指定項目が、デフォルトでは ["c:\program files\lhut32\lhut32.exe" %1"] となっていたのですが、これを ["c:\program files\lhut32\lhut32.exe" "%1"] とダブルクォーテーションを一つ増やすことで、正常に開けるようになりました。 もしかするとwindowsの不具合(?)ではないかと思い始めたのですが、そういった情報を書いてあるページを見つけることができませんでした。 ユーザに納得できるように説明しなければならないので、そういう情報をご存知の方がいらっしゃいましたら教えてください。 よろしくお願いいたします。 #osはwindows2000/xp両方で試しました。
回答: 欲しい情報はなんでしょうか? 例えば["%1"]と[%1]の違いてご理解されていますか? ただ[%1"]というのは見たことからこれはインストーラというか「lhsetup.exe」の問題かそれともwindows自身の問題かは定かではないです。 lhaユーティリティ32の作者に聞く事をお勧めします。 ただ最初に書いた["%1"]と[%1]の違いであれば貴社のソフトにも問題が無いとは言い切れない状態になります。 ["%1"]であればロングファイルネームに対応しますのでそれほど問題は発生しませんが、[%1]の場合ロングファイルネームの問題が発生します。 例えばlzhのフルパスが[c:\work folder\~1234.lzh]となっていれば[%1]の内容は[c:\work folder\~1234.lzh]となり["c:\program files\lhut32\lhut32.exe" c:\work folder\~1234.lzh]というコマンドを windowsに渡す事になります。 windowsでは"c:\program files\lhut32\lhut32.exe" を実行し引き数の1つ目に[c:\work]を二つ目に[folder\~1234.lzh]を渡す事になります。 この為、lhaユーティリティでは[c:\work]が無い為、空を表示していると推測される。(タイトルバーを見れば分かるはず) ["%1"]の場合は["c:\program files\lhut32\lhut32.exe" "c:\work folder\~1234.lzh"]となるので引き数1つめが[c:\work folder\~1234.lzh]となりちゃんと表示される。 hddに保存した時に空白が含まれないフォルダに保存したから出来たのではないですか?(推測) 適当な回答なので信じこまず、ある程度、追跡調査してください。