一、Object-C
#pragma mark 获取应用沙盒根路径
-(void)dirHome {
NSString *dirHome=NSHomeDirectory();
NSLog(@"app_home: %@",dirHome);
}
#pragma mark 获取Documents目录路
-(NSString *)dirDoc {
//[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"app_home_doc: %@",documentsDirectory);
return documentsDirectory;
}
#pragma mark 获取Library目录路径
-(void)dirLib {
//[NSHomeDirectory() stringByAppendingPathComponent:@"Library"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = [paths objectAtIndex:0];
NSLog(@"app_home_lib: %@",libraryDirectory);
}
#pragma mark 获取Cache目录路径
-(void)dirCache {
NSArray *cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [cacPath objectAtIndex:0];
NSLog(@"app_home_lib_cache: %@",cachePath);
}
#pragma mark 获取Tmp目录路径
-(void)dirTmp {
//[NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];
NSString *tmpDirectory = NSTemporaryDirectory();
NSLog(@"app_home_tmp: %@",tmpDirectory);
}
二、Swift
// HomeDirectory:应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。
let homeDir = NSHomeDirectory();
println("HomeDirectory:\(homeDir)")
// DocumentDirectory:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录
let documents = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let docDir = documents.first as! String
println("DocumentDirectory:\(docDir)")
// CachesDirectory:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
let caches = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let cachesDir = caches.first as! String
println("CachesDirectory:\(cachesDir)")
// TemporaryDirectory:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除
let tmpDir = NSTemporaryDirectory();
println("TemporaryDirectory:\(tmpDir)")
// 获取应用程序程序包中资源文件路径的方法:
// 例如获取程序包中一个图片资源(apple.png)路径的方法:代码中的mainBundle类方法用于返回一个代表应用程序包的对象。
if let imagePath = NSBundle.mainBundle().pathForResource("apple", ofType: "png") {
let appleImage = UIImage(contentsOfFile: imagePath)
}