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