关于如何确定垃圾箱中的文件/文件夹的问题。Internet上有一些解决方案,其中之一是FSFindFolder。可以这样使用:
FSFindFolder(kUserDomain, kTrashFolderType, true, &trashRef);
但仍然不知道如何传递我想使用此方法确定的文件路径
关于如何确定垃圾箱中的文件/文件夹的问题。Internet上有一些解决方案,其中之一是FSFindFolder。可以这样使用:
FSFindFolder(kUserDomain, kTrashFolderType, true, &trashRef);
但仍然不知道如何传递我想使用此方法确定的文件路径
的最后一个参数FSFindFolder
是 a FSRef
,可以转换为 aCFURLRef
和 a 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];