如何在我的文档目录中加载带有已保存文件列表的UITableView?

时间:2011-12-05 06:32:48

标签: iphone objective-c ios xcode uitableview

如何在我的文档目录中加载带有已保存文件列表的UITableView?我只需要一个小例子或一个简单的在线教程,因为我一直在拉我的头发。所有文件都保存到iOS文档目录中,我需要做的就是在UITableView中列出它们。

3 个答案:

答案 0 :(得分:3)

NSArray *filePathsArray;

- (void)setUpTheFileNamesToBeListed
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:nil];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [filePathsArray count];   
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    //Insert this line to add the file name to the list
    cell.textLabel.text = [documentsDirectory stringByAppendingPathComponent:[filePathsArray objectAtIndex:indexPath.row]];
}

答案 1 :(得分:1)

您可以使用

获取文档目录的路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

您将使用

获取其中的文件列表
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:nil];

此数组将包含目录和文件。枚举dirContents并使用

检查它是否是文件
- (BOOL)fileExistsAtPath:(NSString *)path

如果该文件不存在,则从dirContents中过滤出来,或者创建一个新数组,其中只包含存在的文件的路径,并将其用作表视图的数据源。

答案 2 :(得分:1)

从以上两个答案中,您知道如何从文档目录中检索文件。

现在您想要在用户点击te cell时打开文件。

你只需要使用UITableView委托函数,即

       -(void)tableView(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
        {
               //do all your file opening logic here.
               //your file data is stored in the NSArray myFileData(refer the previous answer posted above)
              //and suppose you want to fetch the data which is in the file, is of type NSURL, means the file data is just a URL link.
        //just declare a NSURL in your .h(say myURL) (synthesize it etc)


        myURL=[NSURL URLWithString:[myFileData objectAtIndex:indexPath.row]]
         }

现在你的myURL拥有存储在文件中的链接,然后你可以在你的webView中使用该URL。