每一个iOS 应用在iPhone中都有一个对应的文件夹,俗称沙盒. App之间的沙盒是独立的,沙盒之间是不能直接通信的,需要借助系统.这在一定程度上保证了应用安全,保护了用户隐私
NSHomeDirectory() 函数
调用这个函数,会在控制台直接打印当前App的沙盒路径,赋值路径地址,打开Finder,⌘ + shift+g
,就可以到指定的路径下了

Documents 文件夹
作用: 保存应用运行时生成的需要持久化的数据
,iTunes同步设备时会备份
该目录.所以一般这里面的文件一般不要太大
tmp文件夹
作用: 保存应用运行时所需的临时数据
,使用完毕后再将相应的文件从该目录删除
.应用没有运行时,系统也可能会清除该目录下的文件,所以需要持久化的数据一般不放到这个文件夹下.iTunes同步设备时不会备份
该目录
Library/Caches文件夹
作用: 保存应用运行时生成的需要持久化的数据
,iTunes同步设备时不会备份
该目录.一般存储体积大,不需要备份的非重要数据
Library/Preference文件夹
作用: 保存应用的所有偏好设置
,NSUserDefaults用户设置生成的plist文件也会保存到这个目录下
,iTunes同步设备时会备份
该目录
NSSearchPathForDirectoriesInDomains 路径搜索函数
// NSSearchPathDirectory directory 搜索的目录
// NSSearchPathDomainMask domainMask 搜索的范围
// BOOL expandTilde 是否展开路径 (在iOS中识别~)
// 这个函数返回的是一个数组, 通过特定的参数搜索,一般只会有一个目录可以匹配到结果
NSString * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
//获取Document文件夹路径
+ (NSString *)getDocumentPath
{
// NSDocumentDirectory 文件目录
// NSUserDomainMask 从用户文件夹下找
NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [filePaths objectAtIndex:0];
}
//获取Library文件夹路径
+ (NSString *)getLibraryPath
{
NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
return [filePaths objectAtIndex:0];
}
//获取应用程序文件夹路径
+ (NSString *)getApplicationPath
{
return NSHomeDirectory();
}
//获取Cache文件夹路径
+ (NSString *)getCachePath
{
NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
return [filePaths objectAtIndex:0];
}
//获取Temp文件夹路径
+ (NSString *)getTempPath
{
return NSTemporaryDirectory();
}
关于文件夹及文件操作,请看这篇文章
iOS 文件(NSFileManager)及 文件内容(NSFileHandle) 基础使用
网友评论