我正在尝试实现一个类,它使用NSMetadataQuery查找指定位置内的对象。我对用户的下载文件夹和用户的.Trash文件夹进行了尝试。查询下载文件夹可以找到,但是对.Trash文件夹的查询总是返回0结果(尽管其中有文件)。
我正在创建一个值为
((kMDItemDisplayName != \"*\"))
以及搜索范围
/Users/xyz/.Trash
但这不管用。使用搜索范围
/Users/xyz/Downloads
效果很好。
我读过Spotlight可能忽略不可见的文件。所以我创建了第二个谓词
kMDItemFSInvisible == YES
并将两者结合到一个NSCompoundPredicate和一个"AndPredicateType“中。但这一点也不起作用(“OrPredicateType”也不起作用)。
有人有线索吗?
值得一提的是:我在Xcode 6 Beta 5中使用Swift,但我认为这并不重要。
编辑
原因:我想在指定的文件夹中找到所有的项目。我可以用NSFileManager..。但是从文件中检索文件信息是一件很痛苦的事(在逐个文件检索属性时非常慢)。
发布于 2014-08-11 07:56:34
根据苹果的文档,使用NSMetadataQuery查询垃圾文件夹似乎是不可能的:
注意:重要的是要记住,在OS上,虽然文件系统元数据在所有卷上都可用,但其他元数据属性却是不可用的。CD、DVD、磁盘映像和系统目录不被Spotlight索引。
https://stackoverflow.com/questions/25183645
复制相似问题