ショートカットファイルの保存上書きの問No.46895
Kaz さん 14/10/20 13:51
 
 お世話になっています。
 橋本です。

 これは既知の問題であり、MSの問題ですが、昨日まで
outlookやLiveMailの問題かと思ってました。
 以下の手順で秀丸メールでも現象が出ることに気がつきました。

 メールに添付されたショートカットファイルをローカルの
どこにでもいいので保存する。
 もう一度同じ操作をする。
 ファイルのコピーのダイアログが出て、上書きするかどうかの
選択を行う状態になる。
 上書きを選択する。

 ショートカットファイルが保存されたついでに実体のファイルが
ショートカットファイルになって壊れてしまいます。

 秀丸メールはショートカットから直接ファイルを開くことが出来る
ので、こんな操作は、しないのですが、これはWindowsの問題なので
しょうか?

 ちなみにドラッグ&ドロップでエクスプローラにコピーしたときは、
こんなことにはなりませんでした。

 秀丸メール自体の不具合でもなんでもないのですが、どこまで
根が深い問題なのか知りたかっただけです。
 色々検索するとマイクロソフトは改修する気がないらしいというのは
わかりました(笑)

 http://answers.microsoft.com/ja-jp/office/forum/office_2007-outlook/outlook2007/eeba8630-1034-4025-afaa-c5fe5bb6de56

[ ]
RE:46895 ショートカットファイルの保存上No.46896
秀まるお2 さん 14/10/20 14:59
 
 Windows7 Professional 64bit上でテストしましたけど、ショートカットの
リンク先ファイルが壊れるようなことはありませんでした。

 Windowsの種類によるのでしょうかね。

[ ]
RE:46895 ショートカットファイルの保存上No.46897
Kengo さん 14/10/20 15:31
 
>  メールに添付されたショートカットファイルをローカルの
> どこにでもいいので保存する。
>  もう一度同じ操作をする。
>  ファイルのコピーのダイアログが出て、上書きするかどうかの
> 選択を行う状態になる。
>  上書きを選択する。
>
>  ショートカットファイルが保存されたついでに実体のファイルが
> ショートカットファイルになって壊れてしまいます。

私の環境では、再現した、と思います。
Win8.1Pro (64) 秀丸メール 6.31 Beta 9

上書きする時に、ショートカット「そのもの」へではなく、
その「リンク先」へ書いてしまっている感じですね。

まぁ私自身は「ショートカットを添付する(受け取る)」ということは
まずありませんが。

[ ]
RE:46897 ショートカットファイルの保存上No.46898
秀まるお2 さん 14/10/20 16:59
 
 Windows8.1でもテストしてみましたが、いまいち再現しないようです。再現手
順が違うのやら?

 1.デスクトップ上に「テスト.txt」作成する。
 2.「新規メール」として、先ほどのテスト.txtをマウス右ボタンでドラッグ
   ドロップして「ファイルへのショートカットを添付」とする。
 3.宛先を自分自身にして送信する。
 4.受信すると、「テスト.lnk」が点線クリップになるので、「編集・受信
   解析のやり直し」で添付ファイル付きのメールを生成する。
 5.「テスト.lnk」の添付ファイルをデスクトップにドロップしてコピーする。
 6.もう一度同じ操作をして、「コピーして置き換える」を実行する。
 7.テスト.txtを開くと、特に壊れた様子は無い。

 という感じでした。

 「テスト.lnk」をデスクトップにドラッグドロップするんじゃなくて、マウス
右ボタンメニューから「添付ファイルの保存...」でデスクトップに保存しても
同じでした。

[ ]
RE:46898 ショートカットファイルの保存上No.46899
Kengo さん 14/10/20 17:28
 
>  Windows8.1でもテストしてみましたが、いまいち再現しないようです。再現手
> 順が違うのやら?
>
>  1.デスクトップ上に「テスト.txt」作成する。
>  2.「新規メール」として、先ほどのテスト.txtをマウス右ボタンでドラッグ
>    ドロップして「ファイルへのショートカットを添付」とする。
>  3.宛先を自分自身にして送信する。

ここまではOKです。

>  4.受信すると、「テスト.lnk」が点線クリップになるので、「編集・受信
>    解析のやり直し」で添付ファイル付きのメールを生成する。

受信した時点で、「点線クリップ」(のアイコン)になることはなく、右下に
矢印の付いた、普通のショートカットアイコンになってます。
何か設定が違うのかもしれませんが… わかりません。
不要と思いますので、「受信解析のやり直し」はしませんでした。

>  5.「テスト.lnk」の添付ファイルをデスクトップにドロップしてコピーする。

ここは、hidesoft.8:46895 でKazさんが

>  ちなみにドラッグ&ドロップでエクスプローラにコピーしたときは、
> こんなことにはなりませんでした。

と書いてますので、そうせずに、
「テスト.lnk」の添付ファイル(ショートカットアイコン)を右クリックして
「添付ファイルの保存(1)」して、デスクトップに保存しました。
すると「1個のファイルを保存しました。」と出ました。

>  6.もう一度同じ操作をして、「コピーして置き換える」を実行する。

同じく、右クリックして「添付ファイルの保存(1)」すると、
「宛先には既に "テスト.lnk" という名前のファイルが存在します」と
言われるので「ファイルを置き換える(R)」を選択します。
「1個のファイルを保存しました。」と出ます。

>  7.テスト.txtを開くと、特に壊れた様子は無い。

とすると、テスト.txt が壊れています。


手順6の「コピーして置き換える」がどこで出るのかわかりませんでした。

[ ]
RE:46899 ショートカットファイルの保存上No.46900
秀まるお2 さん 14/10/20 17:55
 
> 受信した時点で、「点線クリップ」(のアイコン)になることはなく、右下に
> 矢印の付いた、普通のショートカットアイコンになってます。

 「全般的な設定・ウィルス対策」の「自動削除するファイル指定」の設定によ
りまして、そこに「*.lnk」が入っていると、ショートカット・添付ファイルは
全部削除されます。

 一応、標準の設定だと*.lnkは入っています。

> >  5.「テスト.lnk」の添付ファイルをデスクトップにドロップしてコピーする。
>
> ここは、hidesoft.8:46895 でKazさんが


 これは失礼しました。

> 手順6の「コピーして置き換える」がどこで出るのかわかりませんでした。

 マウス右ボタンメニューの「添付ファイルの保存(1)...」を実行すると保存先
を指定するダイアログボックスが出るんですが、そこでデスクトップを指定して
「保存」ボタンを押すと、Windows7なら

------------------------------------------------------------------------
 ファイルのコピー
 この場所には同じ名前のファイルが既にあります。
 保存するファイルをクリックしてください

 コピーして置き換える
 宛先のフォルダーにあるファイルをコピー元のファイルで置き換えます:
   テスト.lnk
   テスト (E:\HidemailHome\斉藤秀夫メイン\受信添付\141020_15)
   サイズ: 446バイト
   更新日時: 2014/10/20 17:48

 コピーしない
 どのへぁ居るも変更されません。…

 コピーするが両方のファイルを保持する
 コピーするファイルは"テスト(2).lnk"というファイル名に変更されます。
------------------------------------------------------------------------

 が出てきて、「コピーして置き換える」を押す、という操作をしましたけど、
それをやっても「テスト.lnk」が書き換わるだけで、「テスト.txt」が壊れるこ
とは無いようでした。

 環境によるのでしょうかね。

 ちなみに「添付ファイルの保存(1)...」を実行した場合、秀丸メールは
「SHFileOperation」っていうWindowsのAPIを呼び出すので、たぶんこれで問題
が起きるとしたら、SHFileOperationを使う処理みんなダメなんだと思います。

 他のAPIとしては、CopyFileとか、あとIFileOperationっていうもっと新しい
APIもあると思いますけども。CopyFileにしてもダメなことは無いですが、これ
だと、保存にものすごく時間がかかった場合に秀丸メールが固まってしまいます。
SHFileOperationだと、進捗を表すダイアログボックスが勝手に出てきてくれる
という利点があります。

[ ]
RE:46900 ショートカットファイルの保存上No.46901
Kaz さん 14/10/20 18:22
 
>> 受信した時点で、「点線クリップ」(のアイコン)になることはなく、右下に
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>という利点があります。

 言い出しっぺのKazでございます。
 本文では、本名を名乗ってましたけど。。。

 デスクトップは大丈夫なのかと思ってやってみましたけど、
確実に本体がショートカットに置き換わります。
 テストをファイルサーバのショートカットでやったので、
自分のパソコンのCドライブの中でやってみましたが、
やはり壊れました。

 気をつければ大丈夫なことなので、秀丸メールの改修までは
必要はありません。
 固まったりすることはもっと嫌ですので。
 でも環境に依存するとしたらやっかいなバグですよねぇ。。。


[ ]
RE:46900 ショートカットファイルの保存上No.46902
Kengo さん 14/10/20 18:28
 
>  「全般的な設定・ウィルス対策」の「自動削除するファイル指定」の設定によ
> りまして、そこに「*.lnk」が入っていると、ショートカット・添付ファイルは
> 全部削除されます。

確認しました。そこは「空っぽ」になってました。
# 開発系の仕事をしてており、自動削除は困るので。

>  マウス右ボタンメニューの「添付ファイルの保存(1)...」を実行すると保存先
> を指定するダイアログボックスが出るんですが、そこでデスクトップを指定して
> 「保存」ボタンを押すと、Windows7なら

Windows 8.1 Pro (64) ですが、

------------------------------------------------------------
      ファイルの置換またはスキップ
------------------------------------------------------------
1個のファイルをコピー中: 141020_02 から デスクトップ
宛先には既に "テスト.lnk" という名前のファイルが存在します。

 ファイルを置き換える(R)
 ファイルは置き換えずスキップする(S)
 ファイルの情報を比較する(C)
------------------------------------------------------------
 詳細情報
------------------------------------------------------------

となりました。エクスプローラで出るダイアログと同じです。

Windows 7 では未確認です。

>  ちなみに「添付ファイルの保存(1)...」を実行した場合、秀丸メールは
> 「SHFileOperation」っていうWindowsのAPIを呼び出すので、たぶんこれで問題
> が起きるとしたら、SHFileOperationを使う処理みんなダメなんだと思います。

「秀丸メール側の問題」ではないと思います。
当面は、コピーして貼り付け、とか、(私は確認していませんが)ドラッグして
ドロップとかで回避するしか無いような気がします。

[ ]
RE:46900 ショートカットファイルの保存上No.46903
Kengo さん 14/10/21 07:18
 
Win98SE 秀丸メール 6.31 beta 9 でも再現してしまいました。

OSが違うので、「上書きの確認」メッセージが異なります。

●秀丸メールで「添付ファイルの保存(1)」した時

------------------------------------------------------
        ファイルの上書きの確認
------------------------------------------------------
このフォルダには既に 'test.txt' ファイルが存在します。

現在のファイル
 [txtアイコン] サイズ : (数KB)
         更新日時 : 古い日時
に次の新しいファイルを上書きしますか?
 [矢印アイコン] サイズ : (数百Byte)
         更新日時 : 受信日時

                [はい] [いいえ]
------------------------------------------------------

この時点で、コピー先が「リンク先のファイル」に置き換わってしまって
います。アイコンやサイズ・更新日時が異なりますから、よーく見れば
わかりますが、普通はそんなに細かいところまで見ないと思います。

これで [はい] を押すと、メッセージ通り「リンク先のファイル」へ
上書きしてしまい、test.txt が壊れます。

●コピーして貼り付けやドラッグ&ドロップした時

------------------------------------------------------
        ファイルの上書きの確認
------------------------------------------------------
このフォルダには既に読み取り専用ファイル 'test' ファイルが含まれています。

現在のファイル
 [矢印アイコン] サイズ : (数百Byte)
         更新日時 : 受信日時
に次の新しいファイルを上書きしますか?
 [矢印アイコン] サイズ : (数百Byte)
         更新日時 : 受信日時

                [はい] [いいえ]
------------------------------------------------------

コピー先がちゃんと「ショートカットそのもの」になっています。

「読取専用属性が影響しているかも?」と考え、コピー先の
読取専用を外してやってみましたが、メッセージが
「このフォルダには既に 'test' ファイルが存在します。」
に変わっただけでした。いずれも拡張子「.lnk」は表示されていません。

[ ]
RE:46903 ショートカットファイルの保存上No.46904
秀まるお2 さん 14/10/21 09:47
 
 秀丸担当のWindows8.1マシン上でもテストしてみましたが、再現しないようで
した。

 ・・・っと書こうとしたら、秀丸担当が気づいた所があって、設定を変えたら
再現しました。秀丸エディタの動作環境の「ファイル」ページの「開くのダイア
ログボックス」を、今まで「秀丸ファイラーClassic」にしてたんですが、それ
を他のタイプに変更したら再現しました。

 大変失礼しました。

 で、直し方も分かりました。添付ファイルの保存先のダイアログボックスを表
示する時のパラメータに「OFN_NODEREFERENCELINKS」っていうのを指定すれば回
避できました。

 これを指定すると、ショートカットをダブルクリックしてそれのリンク先に飛
ぶって操作が出来なくなります。なので、添付ファイルの拡張子が「.lnk」にな
ってる時だけこのパラメータを指定するようにします。

 それで大丈夫だと思います。

 次のV6.31β15にて対応させていただきます。

[ ]
RE:46904 ショートカットファイルの保存上No.46905
Kengo さん 14/10/21 11:14
 
>  で、直し方も分かりました。添付ファイルの保存先のダイアログボックスを表
> 示する時のパラメータに「OFN_NODEREFERENCELINKS」っていうのを指定すれば回
> 避できました。

なるほど。

| OFN_NODEREFERENCELINKS
| Directs the dialog box to return the path and file name of the selected
| shortcut (.LNK) file. If this value is not specified, the dialog box
| returns the path and file name of the file referenced by the shortcut.

ってやつですか。
Kazさんが hidesoft.8:46895 で挙げている Outlook2007 も
それかもしれませんね。

[ ]
RE:46904 ショートカットファイルの保存上No.46907
Kaz さん 14/10/21 16:11
 
> 秀丸担当のWindows8.1マシン上でもテストしてみましたが、再現しないようで
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> 次のV6.31β15にて対応させていただきます。

 いつのまにか秀丸では解決していた!!
 6.31β15では、発生しないことを確認しました。
 ありがとうございます。

 なるほど、本当のパスが帰ってくるからこうなるか、なるほど。。。
 MSは、何故なおさない!!(笑)



[ ]