如何获取应用程序文档目录iPhone的URL

Luc*_*uke 36 iphone

此代码是Core Data的一部分.URLForDirectory ....方法不能在iOS <4上运行,所以我需要知道一些其他要调用的方法/对象.我还会提供文档以供将来参考.谢谢

/**
 Returns the URL to the application's Documents directory.
*/
- (NSURL *)applicationDocumentsDirectory
{
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
Run Code Online (Sandbox Code Playgroud)

Lev*_*lum 46

另一种解决方案是使用该-[NSFileManager URLsForDirectory:inDomains:]方法并从返回的NSArray中获取路径:

Objective-C的:

NSArray *paths = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
NSURL *documentsURL = [paths lastObject];
Run Code Online (Sandbox Code Playgroud)

迅速:

let paths = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
let documentsURL = paths[0] as! NSURL
Run Code Online (Sandbox Code Playgroud)

这在iOS 4.0+中受支持


Joh*_*ker 42

您可以通过NSSearchPathForDirectoriesInDomains 基础功能获取文档路径,如下所示:

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [searchPaths objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

这适用于iOS 2+.

  • 从documentsPath到NSURL:`[NSURL fileURLWithPath:urlString];`如果url指定了一个目录,请确保你的字符串以`/`结尾. (9认同)
  • 你怎么能把它作为NSURL而不是字符串? (8认同)

小智 16

斯威夫特3

let documentsUrl = FileManager.default.urls(for: .documentDirectory, in:.userDomainMask).first!
Run Code Online (Sandbox Code Playgroud)


Pau*_*anu 6

这是Swift 2.2版本:

let paths = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
let filePath = paths[0].URLByAppendingPathComponent("filename")
Run Code Online (Sandbox Code Playgroud)