如果您將打開 finder 并按熱鍵:Shift Command F
它將打開“最近”檔案串列。
如何從代碼中獲取所有這些最近檔案的 URL 串列?
我發現的最接近的是:https ://developer.apple.com/documentation/appkit/nsdocumentcontroller/1514976-recentdocumenturls
但它正在處理應用程式的最新檔案,而不是 Finder 的最近檔案。
更新:據我所知,它必須在“LSSharedFileList.h”中:
共享檔案串列 共享檔案串列 API 是 OS X Leopard 中啟動服務的新增功能。此 API 提供對檔案系統物件的多種系統全域和每個用戶的持久串列的訪問,例如最近的檔案和應用程式、收藏夾和登錄項。詳情見新增介面檔案LSSharedFileList.h資訊源
但我沒有看到有關如何快速使用它的資訊。
uj5u.com熱心網友回復:
class Spotlight {
static func getUrlsFrom(query: MdQuerySet) -> [URL] {
let queryString = query.rawValue
var result: [URL] = []
let query = MDQueryCreate(kCFAllocatorDefault, queryString as CFString, nil, nil)
MDQueryExecute(query, CFOptionFlags(kMDQuerySynchronous.rawValue))
for i in 0..<MDQueryGetResultCount(query) {
if let rawPtr = MDQueryGetResultAtIndex(query, i) {
let item = Unmanaged<MDItem>.fromOpaque(rawPtr).takeUnretainedValue()
if let path = MDItemCopyAttribute(item, kMDItemPath) as? String {
result.append(path.asURL())
}
}
}
return result
}
}
enum MdQuerySet: String {
// Do not forget to replace && to &&
case modifAndOpened30days = "(InRange(kMDItemFSContentChangeDate,$time.today(-30d),$time.today( 1d)) && InRange(kMDItemLastUsedDate,$time.today(-30d),$time.today( 1d)))"
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/507417.html