GetFolderItem とショートカットの微妙な関係
REALbasic でファイルやフォルダーを扱う場合、必ずお世話になるのが FolderItem クラス。このクラスを使いこなせれば、どんなファイル操作も可能になります。でも、Windows のショートカットを扱う場合には、少しだけ注意が必要です。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
Mac にはエイリアスという概念があります。Windows にはショートカットという概念があります。ほぼ同じものだと思ってもらえれば良いのだけれど、REALbasic の FolderItem の扱いとなると微妙に動作が違います。ファイルを扱う場合、良く使われるのが GetFolderItem() というメソッド。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
引数にはディテクトリをフルパスで指定します(起動しているアプリケーションと同じフォルダならファイル名だけで OK)。このメソッド、ヘプルには「GetFolderItem automatically resolves aliases when filename represents an alias. To prevent this, use GetTrueFolderItem.」と書かれています。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
つまり、指定されたファイルがエイリアスだった場合、GetFolderItem() はそれを理解してオリジナルのファイルを参照してくれるのです。とても便利なのだけれど、これ、Windows ではちゃんと動作してくれません。それは、見えているファイル名と実際のファイル名が違うから。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
Windows でショートカットを作成すると、「〜のショートカット」というファイル名になります。Mac では「〜のエイリアス」です。付加された文字列の部分を削除すると、エイリアスファイルもショートカットファイルも、もとのファイルと同じファイル名になりますね。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
これを GetFolderItem() で参照すると、不思議なことに、Mac ではちゃんともとのファイルが得られるのに、Windows では nil が返ってくる。つまり、そんなファイルは存在しないぞと怒られるのです。ファインダーで見るとファイル名は間違っていないし、ファイルも確かにそこにある。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
実は、Windows のショートカットファイルは「.lnk」という拡張子が付いていて、標準では見えないようになっています。それはそれで構わないのだけれど、GetFolderItem() がせっかくエイリアスを解決してくれるというのに、ファイル名を「.lnk」付きで指定してしまっては元も子もありません。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
エイリアスがもとのファイルと同じファイル名で、同じプログラムでアクセスできるから便利なのであって、最初からエイリアスだと分かって処理するのなら何のことはない。OS の考え方の違いだけれど、この点については Mac OS の方がいいと思う。ファインダーは WYSWYG であるべきだと思うのです。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
週末に飲んだビールが美味しかったので、思わず写真を撮ってしまいました。アサヒビールの「ザ・マスター」、缶ビールなのに泡がとてもクリーミー、味もドイツ仕込みということで、しっかりとしていてコクがありました。ホッピーも飲みたいのだけれど、いつものジャスコにはもう置いてないんだよなぁ。
PENTAX *ist DS + smc PENTAX-DA 21mm F3.2 AL Limited
« *ist DS の後継機は K-7 で決まり! | トップページ | 考える葦 »
「REALbasic」カテゴリの記事
- Lototter のホームページを公開しました!(2012.01.26)
- Lototter での抽選はこんな感じ(2011.07.17)
- Twitter の API を使いこなす(2011.08.17)
- Lototter の素敵なアイコン(2011.08.17)
- Lototter は日々進化しています!(2011.08.17)
「グルメ・クッキング」カテゴリの記事
- 夏と秋のあいだ(2010.09.20)
- ビターチョコ(2010.09.17)
- 真夜中(2009.11.15)
- GetFolderItem とショートカットの微妙な関係(2009.05.31)
- ブラックモンブランにぐらっ!(2005.07.24)
「写真」カテゴリの記事
- Lototter のホームページを公開しました!(2012.01.26)
- Lototter での抽選はこんな感じ(2011.07.17)
- 茅ヶ崎三部作(2012.01.04)
- Twitter の API を使いこなす(2011.08.17)
- Lototter の素敵なアイコン(2011.08.17)
「日記・コラム・つぶやき」カテゴリの記事
- 茅ヶ崎三部作(2012.01.04)
- 黄昏に想う(2011.07.19)
- SHISHAMO Forever(2011.07.18)
- Twitter で抽選するツール Lototter に寄せて(2010.12.19)
- 三浦哲郎さんの訃報にふれて(2010.10.11)
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/82331/45196878
この記事へのトラックバック一覧です: GetFolderItem とショートカットの微妙な関係:










コメント