出於某種原因,我無法在捆綁文件和駐留在不同捲上的文件中執行此操作。獲取捆綁文件中的kMDItemKind返回無
我是唯一一個遇到這個問題,如果不是我該如何解決它?
Finder似乎沒有困難顯示相同的文件,我遇到問題的聚光燈屬性。
我想獲得kMDItemKind文件以及其他一些屬性。
CFStringRef path = CFSTR("/Applications/Chess.app/Contents/Info.plist"); // bad
// CFStringRef path = CFSTR("/Applications/Chess.app"); // good
MDItemRef item = MDItemCreate(kCFAllocatorDefault, (CFStringRef)path);
if(!item) {
NSLog(@"MDItemCreate returned NULL for path: %@", path);
return nil;
}
CFStringRef kind = MDItemCopyAttribute(item, kMDItemKind);
if(kind) {
NSLog(@"file: %@ kind: %@", path, (NSString*)kind);
CFRelease(kind);
} else {
NSLog(@"file: %@ has no kMDItemKind attribute", path);
}
CFRelease(item);
OUTPUT:
文件: /Applications/Chess.app/Contents/Info.plist 已經沒有kMDItemKind屬性
同樣的問題,如果我使用命令行工具MDLS ,像這樣
prompt> mdls /Applications/Chess.app/Contents/Info.plist
kMDItemFSContentChangeDate = 2009-05-19 08:09:03 +0200
kMDItemFSCreationDate = 2009-05-19 08:09:03 +0200
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = 0
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = 0
kMDItemFSLabel = 0
kMDItemFSName = "Info.plist"
kMDItemFSNodeCount = 0
kMDItemFSOwnerGroupID = 0
kMDItemFSOwnerUserID = 0
kMDItemFSSize = 3294
kMDItemFSTypeCode = ""
你可以看到很少的數據被返回,沒有kMDItemKind
你將如何獲得Info.plist的元數據?
非常有意義。 LSCopyKindStringForURL正是我正在尋找的東西,我在錯誤的軌道上。再次,你有解決我的難題。謝謝。 – neoneye 2010-08-19 07:24:19