« Friio不調 その後 | メイン | 伊藤園 国産100 野菜 »
2009年2月11日
Windowsのショートカットとファイル共有
先日、Windowsで作業をしていて嫌なトラブルに遭いました。あるアプリケーションで、特定のファイルを開くとエラーになってしまうのです。トラブルの現象自体にたいした意味はないのですが、その原因は非常に面白かったので書いておきたいと思います。
結論から言うと、そのファイルが入っているフォルダのショートカットファイルを別のマシンから開いたことが原因でした。
私はよくWindowsのデスクトップに、その時やっている仕事のフォルダのショートカットを置いています。そのショートカットをリモートマシン(別のマシン)から開くと、元々ローカルパス(例えば C:\Users\userName\Documents\folderName)で記録されていたショートカットが、ネットワークパス(例えば \\hostName\users\userName\Documents\folderName)に書き換えられてしまいます。
その後、このショートカットをローカルマシン(そのフォルダがあるマシン)上で開いて、その中にあるファイルをアプリケーションにドラッグ&ドロップして開くと、アプリに伝えられるパスがネットワークパスになってしまうのです。お行儀良く作ってあるアプリだったらネットワークパスでもきちんと受け入れてくれるはずですが、いい加減なものはエラーになってしまうというわけですね。
ただ、リモートマシンからショートカットを開くと必ず書き換えられてしまうわけではないようです。どういうケースでなるのかまでは追求できませんでしたが、時間がたってからではこれが原因だと気づくまでかなり苦労すると思うので、今後は別のマシンからショートカットにはアクセスしないよう注意したいと思っています。
コメント
Resolve()のフラグにNOUPDATEをつけてるかどうかな気がしますが、使ってる側での対処方法が無いので面倒ですねぇ。
Windowsがパスの解決を行おうとした時に警告を出してくれたりロケーションを一気に変更してくれるようなソフトがあれば便利かもしれないですね。この際自分で作るとか^^;
投稿者 kyaco : 2009年2月12日 11:44
HDD内のショートカットファイルを走査して自マシンのネットワークパスで記録されているものを修正するプログラムなら作れそうですね。
で、タスク・スケジューラとかで定期的に実行すれば良いかな(^^;)
投稿者 浅利 : 2009年2月12日 16:37
よろしければコメントしてください。
※メールアドレス以外の項目はこのページ上に公開されます。個人情報などの入力にはご注意ください。