- すべてのサブフォルダーとファイルを削除して、フォルダーを削除する最良の方法は何ですか?
- 特定の拡張子を持つファイルを削除する最良の方法は何ですか? たとえば、拡張子が「.txt」のファイルだけを削除したい場合はどうすればよいですか?
ココアまたはカーボン。
ココアまたはカーボン。
ディレクトリ ツリー (またはファイル) を削除するには、 を使用します-[NSFileManager removeItemAtPath:error:]
。これにより、ファイルが直接削除されます (すべてのファイルが削除されます)。代わりにアイテムをゴミ箱に移動する場合は、 を使用しますNSWorkspaceRecycleOperation
。
特定の拡張子を持つファイルのみを削除する場合: 各パス名を取得し、それをpathExtension
使用caseInsensitiveCompare:
して探しているものと比較し、ヒット リストにある場合はファイルを削除します。
2 つを組み合わせる (つまり、ディレクトリ ツリー内で特定の拡張子を持つファイルのみを削除する) 場合は、NSFileManager からディレクトリ列挙子を取得し、ディレクトリ ツリーを自分で調べて、ファイルを 1 つずつ削除する必要があります。
もちろん、ユーザーが見たり知ったりしてはいけないファイルでない限り、必ずごみ箱を使用してください。
特定の拡張子を持つファイルを削除するには..
少なくとも 1 つの方法..この例では、拡張子が jpg のファイルをアプリケーション ドキュメント ディレクトリで検索し、それらを削除しています..
NSFileManager *fManager = [NSFileManager defaultManager];
NSString *dir = [self applicationDocumentsDirectory];
NSError *error;
NSArray *files = [fManager contentsOfDirectoryAtPath:dir error:&error];
for (NSString *file in files) {
if ([[[file pathExtension] lowercaseString] isEqualToString: @"jpg"])
{
[fManager removeItemAtPath: [dirstringByAppendingPathComponent:file] error:&error];
NSLog(@"removed: %@",file);
}
if (error) {
//deal with it
}
}