台灣最大程式設計社群網站
線上人數
2340
 
會員總數:246502
討論主題:190009
歡迎您免費加入會員
討論區列表 >> VB.NET >> 按照在檔案管理器中打開目錄時對文件進行的排序依據來排序我的檔案 (搜尋到範例但看不懂)
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
按照在檔案管理器中打開目錄時對文件進行的排序依據來排序我的檔案 (搜尋到範例但看不懂)
價值 : 150 QP  點閱數:371 回應數:2
樓主

何葦凡
門外漢
0 4
309 15
發送站內信

各位大神好...需要列出目錄下的檔案,並按照在檔案管理器中打開目錄時對文件進行的排序依據 來排序我的檔案。

例如,我打開一個滿是圖片的資料夾,它們可能按名稱、修改/創建日期、類型等排序。它們也可能按拍攝日期重新排序

想知道怎麼取得該目錄在檔案管理器內的排序依據

我用英文google也只能搜到2~3個類似的內容

以下是我找到最接近的東東 希望有大神能幫小弟解惑...怕沒人答 所以點數不敢設太高

這個人用VB6寫出的東西 上面欄位的Sorted by的部分就是我想取得的東東 但我只看得懂.net 打開檔案也看不到任何他引用的組件
https://www.vbforums.com/showthread.php?818959-VB6-Get-extended-details-about-Explorer-windows-by-getting-their-IFolderView

我也找到這個 看起來是要用到Win API的shell32 也用GetSortColumns 關鍵字搜過了 不過都是C++的
https://docs.microsoft.com/zh-tw/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifolderview2-getsortcolumns?redirectedfrom=MSDN

搜尋相關Tags的文章: [ GetSortColumns ] , [ explorer ] , [ sort ] ,
本篇文章發表於2021-07-16 21:20
1樓
回應

P陳
檢舉此回應
1.建一個資料表 FileListdt 內含 檔名、最後日期、.......

2.用 Dim FileList As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
My.Computer.FileSystem.GetFiles("D:\Temp\dir1", FileIO.SearchOption.SearchAllSubDirectories, "*.jpg")
取回在 D:\temp\dir1\ 之下的 所有 *.jpg 的檔案 (含子資料匣)

3.將 Filelist 放入 FileListdt
For Each List1 In FileList
Dim F As New FileInfo(List1)
FileListdt.Rows.Add(List1, F.LastWriteTime, F.Length) <--- 放入 檔名 日期 長度 (其餘的您自己發揮
Next

4.將 FileListdt 作排序
filelsitrow=filelistdt.select("","檔名") <--- 以檔名排
filelsitrow=filelistdt.select("","最後日期 desc") <--- 以 最後日期 由大到小排

----------------------------
您先作 有狀況先GOOGLE ,出不來我們再來討論
本篇文章回覆於2021-07-23 23:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

何葦凡
檢舉此回應
P陳大大好

小弟知道怎麼取出檔案的資訊

我的問題是 他之前在檔案管理器裡用的"排序依據"是依據什麼

這樣我才能依照那個"排序依據"來做排序

例如 我在A資料夾 是以圖片的TAG為順序

我用路徑打開圖片後 我不要我的程式是以A到Z排序 而是要去找出他在A資料夾 是依照TAG為排序依據 讓我的程式可以找出正確的排序方式 叫出下一張圖
本篇文章回覆於2021-07-27 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.