iOS的文件分类、存放路径及文件属性

关键数据

内容:用户创建的数据文件,无法在删除后自动重新创建,且会

路径:主目录/Documents

属性:不要设置"不备份"

管理:iOS系统即时遇到存储空间不足的情况下,也不会清除,同时会备份到iTunes或iCloud中

缓存数据

内容:可用于离线环境,可被重复下载重复生成,即时在离线时缺失,应用本身也可以正常运行

路径:主目录/Library/Caches

属性:默认

管理:在存储空间不足的情况下,会清空, 并且不会被自动备份到iTunes和iCloud中

临时数据

内容:应用运行时,为完成某个内部操作临时生成的文件

路径:主目录/tmp

属性:默认

管理:随时可能被iOS系统清除,且不会自动备份到iTunes和iCloud,尽量在文件不再使用时,应用自己情况,避免对用户设备空间的浪费

离线数据

内容:与缓存数据类似,可以被重新下载和重建,但是用户往往希望在离线时数据依然能够托托地存在着

目录:主目录/Documents  或 主目录/Library/自定义的文件夹

属性:放于Documents下不需设置,放在自定义文件夹中需设置"不备份"

管理:与关键数据类似,即时在存储空间不足的情况下也不会清楚,应用自己应该清除已经不再使用的文件,以免浪费用户设备空间

从iOS5.0.1引入的设置不要备份文件(文件夹也适用)的扩展属性

1 #include <sys/xattr.h>
 2 - (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
 3 {
 4     const char* filePath = [[URL path] fileSystemRepresentation];
 5     
 6     const char* attrName = "com.apple.MobileBackup";
 7     u_int8_t attrValue = 1;
 8     
 9     int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
10     return result == 0;

11 }

1.列出相应路径的扩展属性

Ssize_t listxattr(const char *path ,                     //路径

char *list,                                   //是扩展属性名字,是一个数组,每个扩展属性以\0结束 例如:user.name1\0system.name1\0user.name2\0

size_t size);                           //分配缓存的大小

返回的是扩展属性的大小 包括/0;

2.列出扩展属性所对应的值

ssize_t getxattr(const char *path,               //路径

                             const char *name,         //扩展属性名字

                            void *value,                       //扩展属性所对应的值 

                             size_t size);                    //扩展属性的长度

3.设置扩展属性

setxattr(path,                                                 //路径

key,                                                //扩展属性的名字

value,                                            // 扩展属性的值

size,                                             //扩展属性的长度

flags);                                       //标识

时间: 2024-10-23 23:03:51

iOS的文件分类、存放路径及文件属性的相关文章

iOS 获取文件的目录路径的几种方法 [转]

iOS 获取文件的目录路径的几种方法 2 years ago davidzhang iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory())手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1.Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下.这个目录用于存储用户数据或其它应该

Android Studio 配置虚拟设备的镜像文件的存放路径

操作系统:Windows 10 x64 IDE:Android Studio 3.3 Android Studio创建的虚拟设备的默认存放路径是位于C盘,这导致C盘的可用容量变小. 所以,我决定要将虚拟设备的镜像文件移动到其它盘,给C盘腾出一些可用容量,以备不时之需. 虚拟设备的镜像文件.配置文件的默认存放路径:C:\Users\Administrator\.android\avd 首先将虚拟设备的镜像文件复制到其它盘,再把位于C:\Users\Administrator\.android\av

JAVA WEB 获取properties文件,存放路径 及 获取路径

首先明白,ClassPath : 指的是:WEB-INF\classes这个目录下,通常把文件放在src文件夹下,或者新建文件并且添加到build path即可.IDE在同步文件到tomcat时会自动将文件放在classes下. 获取properties的代码: public Properties loadProperties() { Properties properties = new Properties(); InputStream stream = this.getClass().ge

java基础---&gt;文件---&gt;文件存放路径:绝对路径和相对路径

内容概述: 在实际的工程中,有时会需要存储一些文件,如存放一些图片.数据文件等,存放这些文件时考虑将这些文件存放在哪里. 通常有两种方法来获取文件存放路径: 方法一,获取系统有效盘符  如D:/,然后进行路径扩展,将扩展后的路径作为存放这些文件的根路径.这种方法有一个缺点,那就是在不同的操作系统中进行程序迁移时,会很麻烦: 方法二,获取当前文件夹(即程序工程目录)如d:/projectName,然后进行路径扩展,将扩展后的路径作为存放这些文件的根路径.最终存放程序文件的目录和程序代码目录在同一个

记录文件浏览历史路径

这里使用ComboBox显示和记录浏览历史,用*.ini文件永久记录浏览历史,这里记录的是文件夹路径,记录文件路径也是一样的. string inimultipleFilePath = Application.StartupPath + @"\Plugin\CreateWaterhistoricalpath.ini";//*.ini文件的存放路径 List<string> listHistory = new List<string>();//用于临时存储浏览历史

IOS中获取各个文件的目录路径的方法和NSFileManager类

转自:http://blog.sina.com.cn/s/blog_5fb39f910101di92.html IOS中获取各种文件的目录路径的方法 iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1.Documents 目录:您应该将所有

IOS中获取各种文件的目录路径的方法

iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1.Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下.这个目录用于存储用户数据或其它应该定期备份的信息. 2.AppName.app 目录:这是应用程序的程序包目录,

NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法

在编程之前,一定要有一个信条:代码是为了减少工作量而生的,重复枯燥的工作是不能容忍的. 需求 这是由上篇文章衍生出的需求,我已经将一个文件夹内所有的文件名转译为英文,但我在页面上还需要将这些图片引入加载.如果一个一个手写到程序里,未免有点劳心劳神.那么何不将这个文件夹按照存放路径变成一个相应的JSON在前端请求并渲染呢? 说干就干. 文件夹的路径如下所示: 一级路径:test二级路径:A,B,C...共十三个文件夹三级路径:每个二级路径下有3-8个文件夹不等四级路径:a.jpg,b.jpg,c.

iOS 快速获取沙盒下任意文件夹的路径

NSLog(@"%@", NSHomeDirectory());//沙盒主目录 NSLog(@"%@", NSTemporaryDirectory());//沙盒中tmp文件夹的路径 NSLog(@"%@", [[NSBundle mainBundle] bundlePath]);//沙盒中*.app包的路径 NSLog(@"%@", [NSSearchPathForDirectoriesInDomains(NSDocumen