0

我正在寻找检查文档文件夹中是否存在所有需要的文件的方法。到目前为止,我只有一个文件可以签入此文档,并且可以正常使用此代码:

 NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
 NSUserDomainMask, YES) objectAtIndex:0];
 NSString *path = [documentsDirectory stringByAppendingPathComponent:@"01.mp3"];
 if([[NSFileManager defaultManager] fileExistsAtPath:path])
 {
      [progressIndicator setHidden:YES];
      [downloadbutton setHidden:YES];

 }

检查文档文件夹中是否存在多个文件(如 01.mp3、02.mp3、03.mp3 ...)的最佳方法是什么

问候

4

2 回答 2

2

如果循环中不存在任何内容,则需要使其无效,然后当且仅当 allFilesExist 时才设置隐藏

- (BOOL)filesExistInDocuments:(NSArray*)files
{
    BOOL allFilesExist = YES;

    for (NSString *currFile in files)
    {
        NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                                        NSUserDomainMask, YES) objectAtIndex:0];
        NSString *path = [documentsDirectory stringByAppendingPathComponent:currFile];
        NSLog(@"path: %@", path);

        if(![[NSFileManager defaultManager] fileExistsAtPath:path])
        {
            NSLog(@"not exists!");
            allFilesExist = NO;
            break;
        }
    }

    if (allFilesExist)
    {
        [progressIndicator setHidden:YES];
        [downloadbutton setHidden:YES];
    }

    return allFilesExist;
}
于 2011-08-30T23:43:27.450 回答
0

您可以尝试将一些迭代器附加到您的文件名,如下所示:

 for(int i = 0; i < yourFileCount; i++
{
   NSString *fileName = [NSString stringWithFormat:@"0%i.mp3", i];
   NSString *path = [documentsDirectory stringByAppendingPathComponent:fileName];
   if([[NSFileManager defaultManager] fileExistsAtPath:path])
   {
       [progressIndicator setHidden:YES];
       [downloadbutton setHidden:YES];
   }
}
于 2011-08-30T23:25:03.133 回答