【问题标题】:How to get the names of the files stored in NSDocumentsDirectory?如何获取存储在 NSDocumentDirectory 中的文件的名称?
【发布时间】:2012-08-12 02:03:45
【问题描述】:

我的 NSDocumentsDirectory 中保存了一些文件,如何获取这些文件的名称,然后在 uitableview 中显示这些名称?

我只想将对象的名称检索为 NSString,我可以将文件作为对象检索,但不能检索它们的名称。

这是它的代码:

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

NSString *documentsDirectory = [paths objectAtIndex:0];

NSError * error;
objectsAtPathArray =  (NSMutableArray*)[[NSFileManager defaultManager]
                      contentsOfDirectoryAtPath:documentsDirectory error:&error];
[objectsAtPathArray removeObjectAtIndex:0];

最后一行是删除 .DS_Store 文件

【问题讨论】:

  • 添加一个(for in)循环就可以了,for (NSString *fileName in self.objectsAtPathArray) { cell.textLabel.text = fileName; }
  • 所以复制上面的评论,将其粘贴到您的答案中,然后提交。当您可以单击复选框接受它时,这将阻止像我这样的人查看似乎未回答的问题,并且您是否很好,因为您获得了您批准答案的问题数量!
  • 我试过了。但我无法在 8 小时之前回答我自己的问题。因为我没有足够的声誉。我没有删除这个问题,因为我认为它可能对其他试图找到相同解决方案的人有用。
  • 很好 - 我不建议你删除它 - 有一个回答的问题很好,我保证其他人将来会在它回答后阅读它!做得很好!

标签: iphone ios filenames nsdocumentdirectory


【解决方案1】:

试试这个,

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    objectsAtPathArray = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:nil]mutableCopy];

    for(int i = 0; i < [objectsAtPathArray count]; i++)
    {
       if (![[objectsAtPathArray objectAtIndex:i]isEqualToString:@".DS_Store"])
       {
         [NewArray addObject:[objectsAtPathArray objectAtIndex:i]];
          NSLog(@"NewArray=%@",[NewArray objectAtIndex:i]);
       }
     }

【讨论】:

    【解决方案2】:

    添加一个 (for in) 循环对我有用,

    for (NSString *fileName in self.objectsAtPathArray){
    
       cell.textLabel.text = fileName;
    } 
    

    【讨论】:

      【解决方案3】:

      这将正常工作:

      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
      NSString *documentsDirectory = [paths objectAtIndex:0];
      NSFileManager *manager = [NSFileManager defaultManager];
      NSArray *imageFilenames = [manager contentsOfDirectoryAtPath:documentsDirectory error:nil];
      
      for (int i = 0; i < [imageFilenames count]; i++)
          {
      
          NSString *imageName = [NSString stringWithFormat:@"%@/%@",documentsDirectory,[imageFilenames objectAtIndex:i] ];
      
              if (![[imageFilenames objectAtIndex:i]isEqualToString:@".DS_Store"])
              {
                UIImage *myimage = [UIImage imageWithContentsOfFile:imageName];
                UIImageView *imageView = [[UIImageView alloc] initWithImage:_myimage];
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2015-01-29
        • 2018-06-24
        • 1970-01-01
        • 1970-01-01
        • 2018-10-01
        • 1970-01-01
        • 2015-06-27
        • 2021-01-01
        • 2020-10-30
        相关资源
        最近更新 更多