2

ゴミ箱内のファイル/フォルダを特定する方法に問題がありました。インターネットにはいくつかの解決策があります。そのうちの 1 つが FSFindFolder です。これは次のように使用できます。

FSFindFolder(kUserDomain, kTrashFolderType, true, &trashRef);

しかし、このメソッドを使用して特定したいファイルのパスを渡す方法がまだわかりません

4

1 に答える 1

4

の最後のパラメータFSFindFolderは aで、 aおよびFSRefa に変換できます。CFURLRefNSURL

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];
于 2012-10-12T18:08:16.380 に答える