- PR -

お気に入りのソートの仕方について

1
投稿者投稿内容
しょし
会議室デビュー日: 2005/11/13
投稿数: 9
投稿日時: 2005-11-23 11:22
しょしと申します。
皆様には、いつもお世話になっております。

お気に入りのフォルダ(Favorites)中のお気に入りを、
作成日でソートをかけるプログラムを作ろうと思っている
のですが、方法がわかりません。
(レジストリにデータが書かれているみたいですが・・・)

お知恵を頂戴したく、よろしくお願いいたします。

開発環境
WindowsXP
VC++.net
MFC

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-23 11:55
引用:

しょしさんの書き込み (2005-11-23 11:22) より:

お気に入りのフォルダ(Favorites)中のお気に入りを、
作成日でソートをかけるプログラムを作ろうと思っている
のですが、方法がわかりません。
(レジストリにデータが書かれているみたいですが・・・)


どの手順で行えば実現できると考え、具体的に "どこで" 躓いていますか?

  1. System::Environment::GetFolderPath メソッドで、お気に入りフォルダまでのパスを取得
  2. 取得したパスで System::IO::DirectoryInfo の新しいインスタンスを生成
  3. DirectoryInfo->GetFiles メソッドで、含まれる FileInfo をすべて取得
  4. Extension が .url のものだけを抽出しソート
  5. あとは、Microsoft::Win32::Registry クラスを使って更新
場所は、
  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
  Explorer\MenuOrder\Favorites
だったと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
しょし
会議室デビュー日: 2005/11/13
投稿数: 9
投稿日時: 2005-11-23 15:09
しょしと申します。

じゃんぬねっとさん
→早速のご回答ありがとうございます。

> どの手順で行えば実現できると考え、具体的に "どこで" 躓いていますか?

1.FindFirstFileでお気に入りファイル(.url)を検索
2.上記関数の引数として使用した構造体(WIN32_FIND_DATA型)をベクターに格納
3.ベクターに格納した構造体から、ファイルを作成した日時を取得し、その情報をもって降順にソート

という手順を考えておりましたが、効率的によくないような気がして・・・
他に効率的な方法がないかと思い、投稿させていただいた次第です。

よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-23 15:44
引用:

しょしさんの書き込み (2005-11-23 15:09) より:

1.FindFirstFileでお気に入りファイル(.url)を検索
2.上記関数の引数として使用した構造体(WIN32_FIND_DATA型)をベクターに格納
3.ベクターに格納した構造体から、ファイルを作成した日時を取得し、その情報をもって降順にソート


あ、SDK でしたか。

引用:

という手順を考えておりましたが、効率的によくないような気がして・・・
他に効率的な方法がないかと思い、投稿させていただいた次第です。


方法がわからないわけじゃないんですね。
SDK でやるのであれば、私も同じように実装すると思います。
  1. FindFirstFile で最初のファイル情報を取得する。
  2. FindNextFile で次のファイルを検索する。
  3. 1 および 2 で取得したファイルがディレクトリだった場合は、再帰的に FindFirstFile を呼び出す。
  4. 検索ハンドルを FindClose で閉じる。
  5. WIN32_FIND_DATA の ftCreateTime から FILETIME を取り出してソート。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
しょし
会議室デビュー日: 2005/11/13
投稿数: 9
投稿日時: 2005-11-23 15:59
しょしと申します。

じゃんぬねっとさん
→ご回答ありがとうございます。

> 方法がわからないわけじゃないんですね。
> SDK でやるのであれば、私も同じように実装すると思います。

はたしてこの方法でよいものなのか?と根拠のない疑問を
持っておりました。。。
この方法で実装したいと思います。

本当にありがとうございました。助かりました。
1

スキルアップ/キャリアアップ(JOB@IT)