【问题标题】:How to get All paths for files in Documents directory?如何获取 Documents 目录中文件的所有路径?
【发布时间】:2011-11-18 10:23:04
【问题描述】:

我通常使用NSBundle获取路径。

但是,NSBundle 不包含 Documents 文件夹。

如何获取 Documents 目录中文件的所有路径(或名称)?

【问题讨论】:

    标签: ios iphone xcode nsfilemanager nsbundle


    【解决方案1】:
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
    

    要从中获取文件,您必须提供路径结构...

        NSString *fileName = @"default.png";
        NSString *folderPath = [documentsDirectory stringByAppendingPathComponent:@"%@", fileName];
    

    folderPath 将返回给定文件名的位置。

    【讨论】:

    • Documents 目录中的文件,而不是 Documents 目录中的文件。
    • 抱歉,我想知道 doc- dir- 中所有文件的路径或名称,没有给出文件名。
    【解决方案2】:

    这将为您提供文档目录下所有文件的路径

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
    
        NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:nil];
    
        NSLog(@"files array %@", filePathsArray);
    

    您可以使用以下代码获取 filePathsArray 中每个对象的路径

    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[filePathsArray objectAtIndex:0]]; 
    

    【讨论】:

      【解决方案3】:

      这里很快。
      打印语句将打印所有可用路径

      func getDocumentsDirectory() -> URL {
          let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
      print("Paths - \(paths)")
          let documentsDirectory = paths[0]
          return documentsDirectory
      }
      

      【讨论】:

        猜你喜欢
        • 2016-02-20
        • 2019-05-08
        • 2012-04-06
        • 1970-01-01
        • 2016-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多