如何从NSDocumentDirectory读取数据

时间:2010-11-18 12:18:47

标签: iphone nsdocument

大家好我正在处理一个记录用户声音并将其保存到NSDocumentDirectory的应用程序。数据文件保存得很好。但问题是我想播放这些文件。我正在使用表格视图用NSDocumentDirectory中的文件数填充它。但是表格只显示当前声音文件的一个单元格。我在某处做错了请帮帮我。 我正在使用此代码进行播放。

-(void)PlayAudio
{


    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSLog(@"strffdsa %@",documentsDirectory);
    NSURL *fileURL = [NSURL fileURLWithPath:recorderFilePath];

    player =    [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: nil];
    player.numberOfLoops = 0;
    //[fileURL release];

    [player play];
    [player setDelegate: self];

}

其中recorderFilePath是文件的路径。在NSDate frmattor的帮助下,每次路径都是新的。但是没有得到如何使用驻留在DocumentDirectory中的所有文件填充表视图。

请-2帮助我...我是这项技术的新手。

提前感谢所有........

2 个答案:

答案 0 :(得分:13)

使用枚举器简化迭代文档目录以搜索音乐文件。

        //Use an enumerator to store all the valid music file paths at the top level of your App's Documents directory
        NSDirectoryEnumerator *directoryEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:documentsDirectory];

        for (NSString *path in directoryEnumerator) 
        {
            //check for all music file formats you need to play
            if ([[path pathExtension] isEqualToString:@"mp3"] || [[path pathExtension] isEqualToString:@"aiff"] ) 
            { 
                [myMusicFiles addObject:path];         
            }
        }

        //the NSArray 'myMusicFiles' will be the datasource for your tableview

答案 1 :(得分:1)

您需要NSFileManager的{​​{1}}方法来获取请求目录中的文件数组。然后迭代该数组以找到您要查找的文件名。