当前位置:

>

>

> Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)

Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)

2015-06-15 16:06 发布:yuhang 浏览:207
 

iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒。下面介绍常用的程序文件夹目录:

1,Home目录  ./
整个应用程序各文档所在的目录
1
2
//获取程序的Home目录
let homeDirectory = NSHomeDirectory()
2,Documnets目录  ./Documents
用户文档目录,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录
1
2
3
4
5
6
7
//方法1
let documentPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,
    NSSearchPathDomainMask.UserDomainMask, true)
let documnetPath = documentPaths[0] as! String
 
//方法2
let ducumentPath2 = NSHomeDirectory() + "/Documents"
3,Library目录  ./Library
这个目录下有两个子目录:Caches 和 Preferences
Library/Preferences目录,包含应用程序的偏好设置文件。不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好。
Library/Caches目录,主要存放缓存文件,iTunes不会备份此目录,此目录下文件不会再应用退出时删除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Library目录-方法1
let libraryPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory,
    NSSearchPathDomainMask.UserDomainMask, true)
let libraryPath = libraryPaths[0] as! String
 
//Library目录-方法2
let libraryPath2 = NSHomeDirectory() + "/Library"
 
 
//Cache目录-方法1
let cachePaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory,
    NSSearchPathDomainMask.UserDomainMask, true)
let cachePath = cachePaths[0] as! String
 
//Cache目录-方法2
let cachePath2 = NSHomeDirectory() + "/Library/Caches"
4,tmp目录  ./tmp
用于存放临时文件,保存应用程序再次启动过程中不需要的信息,重启后清空。
1
2
3
4
5
//方法1
let tmpDir = NSTemporaryDirectory()
 
//方法2
let tmpDir2 = NSHomeDirectory() + "/tmp"

5,程序打包安装的目录 NSBundle.mainBundle()
工程打包安装后会在NSBundle.mainBundle()路径下,该路径是只读的,不允许修改。
所以当我们工程中有一个SQLite数据库要使用,在程序启动时,我们可以把该路径下的数据库拷贝一份到Documents路径下,以后整个工程都将操作Documents路径下的数据库。

1
2
3
4
5
6
7
8
9
//声明一个Documents下的路径
var dbPath = NSHomeDirectory() = "/Documents/hanggeDB.sqlite"
//判断数据库文件是否存在
if !NSFileManager.defaultManager().fileExistsAtPath(dbPath){
    //获取安装包内数据库路径
    var bundleDBPath:String? = NSBundle.mainBundle().pathForResource("hanggeDB", ofType: "sqlite")
    //将安装包内数据库拷贝到Documents目录下
    NSFileManager.defaultManager().copyItemAtPath(bundleDBPath!, toPath: dbPath, error: nil)
}

Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)的更多相关文章

  1. [ios][swift]Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)

    自己写的不一定是最好的! 轮子:http://www.hangge.com/blog/cache/detail_765.html

  2. iOS开发——数据持久化Swift篇&文件目录路径获取(Home目录,文档目录,缓存目录等)

    文件目录路径获取(Home目录,文档目录,缓存目录等)   iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒.下面介绍常用的程序文件夹目录:   1,Home ...

  3. jmeter_02_目录文档说明

    jmeter目录文档说明 bin目录是可执行文件 jmeter.bat 是启动文件 可以启动jmeter. 使用notpad++ 等文本编辑器打开 bat文件 可以配置jvm的参数 比如堆内存[Hea ...

  4. Swift - 文件目录路径获取及数据储存(Home目录,文档目录,缓存目录)

    iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒.   应用沙盒结构分析 1.应用程序包:包含了所有的资源文件和可执行文件 2.Documents:保存应用运 ...

  5. 获取div相对文档的位置

    获取div相对文档的位置,两个方法 经测试 document.getElementById("btn").getBoundingClientRect() 在IE6下有2像素的bug ...

  6. 优秀的目录文档内容查找,替换工具,可以飞快的帮助你查询大IIS日志哟。

    这,是一款飞速的目录文档中内容查找的工具. 它,飞快精准的帮助你查询到你想搜索的文档中的内容. 它,是一款由非常牛B,我都不晓得姓名的作者开发的,冒失是C++的windows应用. 你,非常需要他. ...

  7. ELK学习总结(2-3)Mget获取多个文档

     mget 获取多个文档 1.curl 命令格式:mget获取多个文档: curl  'localhost:9200/_mget'  -d  '{ "docs":[ { " ...

  8. [ Laravel 5.5 文档 ] 快速入门 —— 目录结构篇

    简介 Laravel 默认的目录结构试图为不管是大型应用还是小型应用提供一个良好的起点.当然,你也可以按照自己的喜好重新组织应用的目录结构,因为 Laravel 对于指定类在何处被加载没有任何限制 — ...

  9. Word 2010文档自动生成目录和某页插入页码

    一.Word 2010文档自动生成目录 关于Word文档自动生成目录一直是我身边同学们最为难的地方,尤其是毕业论文,经常因为目录问题,被要求修改,而且每次修改完正文后,目录的内容和页码可能都会发生变化 ...

随机推荐

  1. 打印NSLog分类 Foundation+Log.m

    #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @implementation UIView(Log) + ...

  2. [HDU 1428]--漫步校园(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1428 漫步校园 Time Limit: 2000/1000 MS (Java/Others)    M ...

  3. ISO C Random Number Functions

    This section describes the random number functions that are part of the ISO C standard. To use these ...

  4. Net FLow Template

    EK  Template : bool bfs(int src, int des){ memset(pre, -, sizeof(pre)); while(!que.empty()) que.pop( ...

  5. Python 2.7 学习笔记 内置语句、函数、标准库

    使用任何开发语言进行软件开发,都离不开语言提供的内置库(或Api),甚至说内置库的强大及使用是否方便都会影响大家对开发语言的选择. python语言,一样提供了很多内置的功能,可供开发时使用.主要有如 ...

  6. jquery删除动态增加的li

    <script type="text/jscript"> //楼主帮你修改调整了下 $(document).ready(function () { $('.zuo li ...

  7. MapReduce调度与执行原理之任务调度(续)

    前言 :本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教.本文不涉及Hadoop的架构设计,如有兴趣请参考相关 ...

  8. [置顶] hdu3018解题报告--也是白话几笔画学习总结

    1.题意 2.分析难点(结合图形) 1.首先说说题意吧...题意很简单...但是一开始很菜的我就很迷惑..在想啊...题目怎么就会有没有连接边的点呢....因为你每次给出一条边..就把 a,b连接啦. ...

  9. 多模块Maven项目怎样使用javadoc插件生成文档

    需求 近期要对一个项目结构例如以下的Maven项目生成JavaDoc文档. Project                         |-- pom.xml                   ...

  10. ArrayList集合-[习题]--C#

    :向集合中添加10个元素,计算平均值,求最大.最小值. ; list.AddRange(, , , , , , , , }); int Max, Min; Max = Min = (]; ; i &l ...