• ベストアンサー

ショートカットのURLをファイルに出力したい。

C:\WINDOWS\Favoritesには、お気に入りに登録してたもののショートカットがあります。 各ショートカットのURLをファイルに出力する事は出来るでしょうか? opendir(DIR, "C:/WINDOWS/Favorites/"); @dir_value = readdir(DIR); closedir(DIR); @file = grep(-f,@dir_value); ダメ元でやってみたのですが、ショートカットはファイルではない?のでファイル名の取得も出来ませんした。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

サンプルを作ってみました。 適当に変更してみて下さい ショートカットのうち 拡張子がlnkはリンクで urlがURLのリンクです。 ファイルの中に、 URL=アドレス の行があるので、それを見つけたら、 ファイル名と一緒に表示するというようにしてます。 -------------------------------- @files=glob("*.url"); for $file (@files){ open(FH, $file); while(<FH>){ if(/^URL=.*$/){ print $file . ":"; print ; last; } } close(FH); }

kapran
質問者

お礼

@files=glob("*.url");を@files = grep(/url/,@dir_value); で旨くいきました。表示のさせ方は私が用意して置いた力技よりスマートですね。

kapran
質問者

補足

C:/WINDOWS/Favorites/で旨くいけば、履歴のC:/WINDOWS/Historyでも行けるとふんでいました。。。 履歴の中の例えば「今日」の内容について同じ様なことは出来るでしょうか? 心当たりが御座いましたら宜しくお願いします。

その他の回答 (2)

  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

> C:/WINDOWS/Favorites/で旨くいけば、履歴のC:/WINDOWS/Historyでも行けるとふんでいました。。。 > 履歴の中の例えば「今日」の内容について同じ様なことは出来るでしょうか? このフォルダはFavoritesと違って仮想フォルダです。ためしにエクスプローラー以外でHistoryフォルダを調べてみてください。おそらくindex.datとかの名前のファイルが1個あるだけで、その実体はDBになっています。 なので、一番手っ取り早いプログラムからのアクセスは、IEコンポーネントとか、IUrlHistoryStgあたり使ってアクセスできます。

kapran
質問者

お礼

有り難うございました。 >なので、一番手っ取り早いプログラムからのアクセスは、IEコンポーネントとか、>IUrlHistoryStgあたり使ってアクセスできます。 それらを使うのは難しそうですのですので、研究が必要の様です。(^_^;

  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

URLショートカットは、ただのテキストファイルです。 テキストファイルとして開き、 URL=http://~ という行があります。 どこかに仕様が載っていたのですが、失念しました…。 ファイル名の取得が出来なかった理由は、また別にあるような気がします。

kapran
質問者

お礼

@files = grep(/url/,@dir_value); で取得できました。有り難うございました。-f で取得できませんでしたのでパニクッてしまいました。(^_^;

関連するQ&A