我有app目录,我需要在某个地方放置一些文件才能在我的应用程序中使用它(免费书籍)。我应该使用哪个目录以及如何获取路径?
答案 0 :(得分: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]);
答案 1 :(得分:0)
这可能对您有所帮助。通过使用它,您可以在应用程序数据中创建文件或从应用程序数据中获取文件。
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)