Как я могу загрузить свой UITableView со списком сохраненных файлов в моем каталоге документов? - PullRequest
0 голосов
/ 05 декабря 2011

Как я могу загрузить свой UITableView со списком сохраненных файлов в моем каталоге документов? Мне просто нужен маленький пример или простой онлайн-учебник, когда я выдергиваю свои волосы. Все файлы сохраняются в каталоге документов iOS, и все, что мне нужно сделать, это перечислить их в моем UITableView.

Ответы [ 3 ]

3 голосов
/ 05 декабря 2011
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 голос
/ 05 декабря 2011

Из двух приведенных выше ответов вы знаете, как извлечь файлы из каталога документов.

и теперь вы хотите открыть файл, когда пользователь нажмет на ячейку.

выпросто нужно использовать делегированную функцию 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 имеет ссылку, которая хранится в файле, и затем вы можете использовать этот URL в вашем веб-представлении.

1 голос
/ 05 декабря 2011

Вы можете получить путь к каталогу документов, используя

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, либо создайте новый массив с путями только тех файлов, которые существуют, и используйте его в качестве источника данных для табличного представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...