リストボックスにファイル作成日時順に並べたい
Posted: 2005年7月24日(日) 16:44
以下のようなものを使って、ListBoxに項目を追加しています。
hList=GetDlgItem(hMainWnd,ListBox1)です。
また、Win32Data As WIN32_FIND_DATA、nom As Longです。
これで、ListBoxに名前順に追加していると、名前順になります。
(「スタイル」の「ソート」のチェックははずしています。)
(↓こういう風になります↓)
0001 - W:\音楽\15○○.mp3
0002 - W:\音楽\ど○○○○○.mp3
(↑こういう風になります↑)
自分がしたいことは、ファイル更新(作成)日時順ではないと、ファイルを追加したとき、nom関数の数字が、ファイルと追加する前と一致しないので、変動の少ない、ファイル更新(作成)日時でソートしたいのです。
(↓こういう風にしたいです↓)
0001 - W:\音楽\ど○○○○○.mp3
0002 - W:\音楽\15○○.mp3
(↑こういう風にしたいです↑)
0002の作成日 > 0001の作成日
(新しい) > (古い)
説明が分かりにくいかもしれませんが、よろしくお願いします。
コード: 全て選択
Sub MainWnd_CommandButton1_Click()
SearchFile=FindFirstFile("W:\音楽\*.mp3",Win32Data)
Do
If SearchFile=INVALID_HANDLE_VALUE Then
MessageBox(0,0,0,0)
Else
'MessageBox(0,Win32Data.cFileName,0,0)
Num=Num+1
wsprintf(NumStr,"%04u",Num)
d=NumStr+" - "+"W:\音楽\"+Win32Data.cFileName
SendMessage(hList,LB_ADDSTRING,0,StrPtr(d))
'SetDlgItemText(hMainWnd,EditBox1,Win32Data.cFileName)
FindNextFile(SearchFile,Win32Data)
If a=Win32Data.cFileName Then Exit Do
a=Win32Data.cFileName
End If
Loop
FindClose(SearchFile)
num=SendMessage(hList,LB_GETCOUNT,0,0)
SetDlgItemText(hMainWnd,Static1,"項目数:"+Str$(num))
End Sub
また、Win32Data As WIN32_FIND_DATA、nom As Longです。
これで、ListBoxに名前順に追加していると、名前順になります。
(「スタイル」の「ソート」のチェックははずしています。)
(↓こういう風になります↓)
0001 - W:\音楽\15○○.mp3
0002 - W:\音楽\ど○○○○○.mp3
(↑こういう風になります↑)
自分がしたいことは、ファイル更新(作成)日時順ではないと、ファイルを追加したとき、nom関数の数字が、ファイルと追加する前と一致しないので、変動の少ない、ファイル更新(作成)日時でソートしたいのです。
(↓こういう風にしたいです↓)
0001 - W:\音楽\ど○○○○○.mp3
0002 - W:\音楽\15○○.mp3
(↑こういう風にしたいです↑)
0002の作成日 > 0001の作成日
(新しい) > (古い)
説明が分かりにくいかもしれませんが、よろしくお願いします。