Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 是否删除iOS中的空文件夹?_Objective C_Ios5_Nsfilemanager - Fatal编程技术网

Objective c 是否删除iOS中的空文件夹?

Objective c 是否删除iOS中的空文件夹?,objective-c,ios5,nsfilemanager,Objective C,Ios5,Nsfilemanager,我在应用程序的文档文件夹中有很多空的临时文件夹 如何将它们全部删除 我试过: NSArray *folders = [[NSFileManager defaultManager]contentsOfDirectoryAtURL:[self applicationDocumentsDirectory] includingPropertiesForKeys:[NSArray arrayWithObject:@"NSURLIsDirectoryKey"] options:0 error:nil]; i

我在应用程序的文档文件夹中有很多空的临时文件夹

如何将它们全部删除

我试过:

NSArray *folders = [[NSFileManager defaultManager]contentsOfDirectoryAtURL:[self applicationDocumentsDirectory] includingPropertiesForKeys:[NSArray arrayWithObject:@"NSURLIsDirectoryKey"] options:0 error:nil];
if (folders) {
    for (NSURL *url in folders) {
        [[NSFileManager defaultManager]removeItemAtURL:url error:nil];
    }
}

但它不仅删除文件夹,而且删除所有文件夹。这段代码只删除空的目录

NSFileManager *fileManager = [[NSFileManager alloc] init];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSArray *files = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:nil];
for (NSString *file in files) {
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:file];
    NSError *error;
    if ([[fileManager contentsOfDirectoryAtPath:fullPath error:&error] count]==0) {
        // check if number of files == 0 ==> empty directory
        if (!error) { 
            // check if error set (fullPath is not a directory and we should leave it alone)
            [fileManager removeItemAtPath:fullPath error:nil];
        }
    }
}
如果您只想删除所有目录不空),代码段可以简化为:

NSFileManager *fileManager = [[NSFileManager alloc] init];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSArray *files = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:nil];
for (NSString *file in files) {
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:file];
    if ([fileManager contentsOfDirectoryAtPath:fullPath error:nil])
        [fileManager removeItemAtPath:fullPath error:nil];
}