IOS,从应用目录加载文件[关闭]

Posted

技术标签:

【中文标题】IOS,从应用目录加载文件[关闭]【英文标题】:IOS, Loading files from app directory [closed] 【发布时间】:2015-08-12 08:57:35 【问题描述】:

我有应用程序目录,我需要在某个地方放置一些文件才能在我的应用程序中使用它(免费书)。我应该使用哪个目录以及如何获取它的路径?

【问题讨论】:

访问此链接并了解您应用中的不同目录及其用法developer.apple.com/library/ios/documentation/FileManagement/… 【参考方案1】:

如果您在构建时将它们包含在应用程序包中,您可以像这样获取它们的文件路径:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"myfile" ofType:@"pdf"];

如果您是从服务器或其他地方下载它们,那么您应该将它们放在文档目录中。这是这样获得的:

NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

然后您只需将文件名附加到它即可访问它:

NSString *filePath = [documentDir stringByAppendingPathComponent:@"myfile.pdf"];

如果您只想要 App Bundle 的目录和目录列表,您可以这样做:

NSString *appBundleFolderBath = [[NSBundle mainBundle] resourcePath];

NSFileManager *fileManager = [NSFileManager defaultManager];  
NSLog(@"App's Directory is: %@", appBundleFolderBath);
NSLog(@"Directory Contents:\n%@", [fileManager directoryContentsAtPath: appBundleFolderBath]);

【讨论】:

如何使用 app bundle 中的目录? 第一个示例将为您提供应用程序包中文件的路径,如果这就是您所追求的。 我添加了另一个关于访问应用程序资源目录并列出内容的示例。 在我的 Xcode 项目中,我有目录“TestBooks”。在其中我有“book1”目录。我需要'book1'的路径。我怎样才能得到它? XCode 界面中源文件的目录不一定代表物理目录。在编译和安装时,虚拟目录“book1”中的所有文件都可能位于根应用程序包文件夹中。运行我在答案中输入的最后一个示例,看看文件是否在那里。【参考方案2】:

这可能对您有所帮助。通过使用它,您可以在应用程序数据中创建文件或从应用程序数据中获取文件。

  var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
  var dirPath = paths.stringByAppendingPathComponent("XYZ/")

  var docPath = paths.stringByAppendingPathComponent("XYZ/xyz.json" )
  println(docPath)
  var checkImage = NSFileManager.defaultManager()

  if (checkImage.fileExistsAtPath(docPath)) 


 else

     checkImage.createDirectoryAtPath(dirPath, withIntermediateDirectories: true, attributes: nil, error: nil)


为了删除具体使用这个

 checkImage.removeItemAtPath(imagePath, error: nil)

【讨论】:

以上是关于IOS,从应用目录加载文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 从 Documents 目录中的 bundle 加载 xib

从 Documents 目录存储和读取文件 iOS 5

列出IOS中的文档文件[关闭]

iOS应用程序更新文件目录中的文件问题

从cordova html页面(cordova)加载保存在iOS App Documents目录中的图像?

从本地 HTML Xcode 加载本地图像