jubilee

Programing, Books and more...

ディレクトリ内を検索し、対象の文字列を含むディレクトリ・ファイルを削除

~/tmpディレクトリ内に存在する「capture」の文字列を含むディレクトリ・ファイルを削除したい。
ワイルドカードが使えないみたいなので、以下で対応。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- (void)deleteTmpCaptureDir
{
    NSFileManager *manager = [NSFileManager defaultManager];
    NSError *error = nil;
    // ~/tmpディレクトリの取得
    NSString *tmpDir = NSTemporaryDirectory();
    // tmpディレクトリ内の一覧取得
    NSArray *list = [manager contentsOfDirectoryAtPath:tmpDir error:&error];
    // 一覧の中から「capture」を含むディレクトリ・ファイルを検索
    for (NSString *path in list) {
        NSRange range = [path rangeOfString:@"capture"];
        // 存在したならば削除
        if (NSNotFound != range.location) {
            NSString *target = [tmpDir stringByAppendingPathComponent:path];
            [manager removeItemAtPath:target error:&error];
        }
    }
}