如何确定垃圾箱中的文件/文件夹有问题。 互联网上有一些解决方案,其中之一就是FSFindFolder。 可以使用这样的东西:
FSFindFolder(kUserDomain, kTrashFolderType, true, &trashRef);
但仍然不知道如何使用此方法传递我想要确定的文件路径
答案 0 :(得分:4)
FSFindFolder
的最后一个参数是FSRef
,可以转换为CFURLRef
和NSURL
:
FSRef trashRef;
FSFindFolder(kUserDomain, kTrashFolderType, true, &trashRef);
CFURLRef urlRef = CFURLCreateFromFSRef(NULL, &trashRef);
NSURL *trashUrl = CFBridgingRelease(urlRef);
NSString *trashPath = [trashUrl path];
NSLog(@"trash folder: %@", trashPath);
(为了简洁,我省略了错误检查。我还假设您使用自动引用计数。)
现在您可以检查给定文件是否在垃圾箱文件夹中:
NSString *theFile = ...; // your file here
NSString *fileInTrash = [trashPath stringByAppendingPathComponent:theFile];
BOOL isInTrash = [[NSFileManager defaultManager] fileExistsAtPath:fileInTrash];
NSLog(@"is in trash: %d", isInTrash);
注意:在Mac OS X 10.8上,不推荐使用FSFindFolder
,您可以使用以下代码查找垃圾箱文件夹:
NSString *trashPath = [NSSearchPathForDirectoriesInDomains(NSTrashDirectory, NSUserDomainMask, YES) lastObject];