iOS 沙盒 Document Library Cache Temp

每一个iOS 应用在iPhone中都有一个对应的文件夹,俗称沙盒. App之间的沙盒是独立的,沙盒之间是不能直接通信的,需要借助系统.这在一定程度上保证了应用安全,保护了用户隐私

NSHomeDirectory() 函数

调用这个函数,会在控制台直接打印当前App的沙盒路径,赋值路径地址,打开Finder,⌘ + shift+g,就可以到指定的路径下了

沙盒路径文件夹.png
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) 基础使用

推荐阅读更多精彩内容