iOS开发——数据持久化Swift篇&(二)沙盒文件
沙盒文件
//******************** 5.2 文件操作
func use_FileOperations()
{
//1、获取程序的Home目录
let homeDirectory = NSHomeDirectory()
println(homeDirectory)
//2、获取Documents目录
let documentPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
// let documentPath = documentPaths[0] as String
//2015年5月2号修改
let documentPath = documentPaths[] as! String
println(documentPath)
//或通过home目录自己追加文件夹
var documentPath2 = homeDirectory + "/Documents"
println(documentPath2)
//3、获取Library目录
let libraryPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true)
// let libraryPath = libraryPaths[0] as String
//2015年5月2号修改
let libraryPath = libraryPaths[] as! String
println(libraryPath)
//或通过home目录自己追加文件夹
var libraryPath2 = homeDirectory + "/Library"
println(libraryPath2)
//4、获取Cache目录
let cachesPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true)
// let cachesPath = cachesPaths[0] as String
//2015年5月2号修改
let cachesPath = cachesPaths[] as! String
println(cachesPath)
//或通过home目录自己追加文件夹
var cachesPath2 = homeDirectory + "/Library/Caches"
println(cachesPath2)
//5、获取Tmp目录
let tmpDir = NSTemporaryDirectory()
println(tmpDir)
//或通过home目录自己追加文件夹
var tmpDir2 = homeDirectory + "/tmp"
println(tmpDir2)
//对于错误信息
var error:NSError?
// 创建文件管理器
var fileManager :NSFileManager = NSFileManager.defaultManager()
//创建目录
//定义几个自己的目录
let myDirectory1:String = NSHomeDirectory() + "/Documents/myFolder/Images"
let myDirectory2:String = NSHomeDirectory() + "/Documents/myFolder/Films"
let myDirectory3:String = NSHomeDirectory() + "/Documents/myFolder/Musics"
let myDirectory4:String = NSHomeDirectory() + "/Documents/myFolder/Files"
//创建目录
//withIntermediateDirectories 设置成true,代表中间所有的路径目录如果不存在,都会创建
//如果设置成false,因为myFolder目录不存在,所以无法创建1234目录
var isSuccess:Bool = fileManager.createDirectoryAtPath(myDirectory1, withIntermediateDirectories: true, attributes: nil, error: &error)
println(error) //isSuccess=true代表创建成功,如果创建失败,error 会返回错误信息
fileManager.createDirectoryAtPath(myDirectory2, withIntermediateDirectories: true, attributes: nil, error: &error)
fileManager.createDirectoryAtPath(myDirectory3, withIntermediateDirectories: true, attributes: nil, error: &error)
fileManager.createDirectoryAtPath(myDirectory4, withIntermediateDirectories: true, attributes: nil, error: &error)
//创建文件
var filePath = myDirectory1 + "/appInfo.txt"
var info = "经常听到:被中介骗了,押金不退,晚一天交房租,被讹了。租房普遍现象:网上报价不真实?经常被忽悠!(看房时报价都比网上高!)证件不齐全,被骗过!(其实根本不是房东啦!)看房前态度都很热情! 签约之后态度骤变!入住后家电维修只能靠自己! 房屋到期,押金各种被勒索!现在开始,你来改变这一切!《租房点评》为你而备,租房无忧!再也不用担心被欺骗,想要知道给你介绍房子的人好不好,《租房点评》告诉你!"
info.writeToFile(filePath, atomically: true, encoding: NSUTF8StringEncoding, error: &error)
//保存图片
var image = UIImage(named: "SwiftClassWeiXin@3x.png")
var data:NSData = UIImageJPEGRepresentation(image, 1.0)
var data1:NSData = UIImagePNGRepresentation(image)
data.writeToFile(myDirectory1 + "/SwiftClassIcon.jpg", atomically: true)
data1.writeToFile(myDirectory1 + "/SwiftClassIcon.png", atomically: true)
//保存NSArray
var array = NSArray(objects: ")
array.writeToFile(myDirectory4 + "/array.plist", atomically: true)
//保存NSDic
var dictionary = NSDictionary(objects: ["])
dictionary.writeToFile(myDirectory4 + "/dictionary.plist", atomically: true)
//判断目录或文件是否存在
var exist = fileManager.fileExistsAtPath(filePath)
println(exist)
//移动
var filePath2 = myDirectory4 + "/appInfo.txt"
fileManager.moveItemAtPath(filePath, toPath: filePath2, error: &error)
//重命名
//通过移动该文件对文件重命名
var filePath3 = myDirectory4 + "/appInfo2.txt"
fileManager.moveItemAtPath(filePath2, toPath: filePath3, error: &error)
//拷贝
var filePath4 = myDirectory4 + "/appInfoCopy.txt"
fileManager.copyItemAtPath(filePath3, toPath: filePath4, error: &error)
//获取目录列里所有文件名
//先赋值一些文件到myDirectory4目录下
var filePath00 = myDirectory4 + "/appInfoCopy00.txt"
var filePath11 = myDirectory4 + "/appInfoCopy11.txt"
var filePath22 = myDirectory4 + "/appInfoCopy22.txt"
fileManager.copyItemAtPath(filePath3, toPath: filePath00, error: &error)
fileManager.copyItemAtPath(filePath3, toPath: filePath11, error: &error)
fileManager.copyItemAtPath(filePath3, toPath: filePath22, error: &error)
//获取所有文件
var fileArray = fileManager.subpathsAtPath(myDirectory4)
println(fileArray)
// Optional([appInfo.txt, appInfo2.txt, appInfoCopy.txt, appInfoCopy00.txt, appInfoCopy11.txt, appInfoCopy22.txt])
//IPhone中获取文件各项属性方法
//获取文件属性
var fileAttributes : [NSObject:AnyObject]? = NSFileManager.defaultManager().attributesOfItemAtPath(filePath22, error: &error)
//获取文件的创建日期
var modificationDate:AnyObject? = fileAttributes![NSFileModificationDate]
println(modificationDate)
//获取文件的字节大小
var fileSize:AnyObject? = fileAttributes![NSFileSize]
println(fileSize)
//删除文件
fileManager.removeItemAtPath(filePath4, error: &error)
//删除目录下所有文件
//方法1: 获取所有文件,然后遍历删除
var fileArray2 : [AnyObject]? = fileManager.subpathsAtPath(myDirectory4)
for fn in fileArray2!
{
fileManager.removeItemAtPath(myDirectory4 + "/\(fn)", error: &error)
}
//方法2:删除目录后重新创建该目录
fileManager.removeItemAtPath(myDirectory4, error: &error)
fileManager.createDirectoryAtPath(myDirectory4, withIntermediateDirectories: true, attributes: nil, error: &error)
}
//1:C函数
var path = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)//第一个和第二个参数还有其他一些对应的选项,第三个参数就是~的表示(false-不展开~:...../User)
var documentsDirectory = path[] as! String
println(documentsDirectory)
/**
/Users/icocos/Library/Developer/CoreSimulator/Devices/BFD7850E-8B04-4710-B0CD-462FAB5F1035/data/Containers/Data/Application/B253FB89-3AA8-41C8-AE94-F820F856C06F/Documents
*/
var temp = NSTemporaryDirectory()
println(temp)
/**
/Users/icocos/Library/Developer/CoreSimulator/Devices/BFD7850E-8B04-4710-B0CD-462FAB5F1035/data/Containers/Data/Application/28CCDDA9-E804-4251-8BF9-EF68866F52C5/tmp/
*/
//******************************
//2:ios方法FileManager.这个使用更多,因为他还有很多的功能,就是我们下面的方法的使用
var filemanager = NSFileManager.defaultManager()
var documentDirectoryWithIOS = filemanager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)
println(documentDirectoryWithIOS)
/**
[file:///Users/icocos/Library/Developer/CoreSimulator/Devices/BFD7850E-8B04-4710-B0CD-462FAB5F1035/data/Containers/Data/Application/B253FB89-3AA8-41C8-AE94-F820F856C06F/Documents/]
*/
iOS开发——数据持久化Swift篇&(二)沙盒文件的更多相关文章
- iOS开发——数据持久化Swift篇&使用Core Data进行数据持久化存储
使用Core Data进行数据持久化存储 一,Core Data介绍 1,Core Data是iOS5之后才出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成 ...
- iOS开发——数据持久化Swift篇&文件目录路径获取(Home目录,文档目录,缓存目录等)
文件目录路径获取(Home目录,文档目录,缓存目录等) iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒.下面介绍常用的程序文件夹目录: 1,Home ...
- iOS开发——数据持久化Swift篇&(一)NSUserDefault
NSUserDefault //******************** 5.1 NSUserDefault和对象归档 func useNSUserDefault() { //通过单利来创建一个NSU ...
- iOS开发——数据持久化Swift篇&iCloud云存储
iCloud云存储 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super. ...
- iOS开发——数据持久化Swift篇&(四)CoreData
CoreData import CoreData class ViewController: UIViewController { override func viewDidLoad() { supe ...
- iOS开发——数据持久化Swift篇&(三)SQLite3
SQLite3 使用 //******************** 5.3 SQLite3存储和读取数据 func use_SQLite3() { //声明一个Documents下的路径 var db ...
- iOS开发——数据持久化Swift篇&通用文件存储
通用文件存储 import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextFie ...
- iOS开发——数据持久化Swift篇&SettingBundle
SettingBundle import UIKit class ViewController: UIViewController { var userDefault = NSUserDefaults ...
- iOS开发——数据持久化Swift篇&模型对象归档
模型对象归档 import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextFie ...
随机推荐
- WinForm 中两个窗口之间传递数据
方法有很多种,这里介绍项目中使用的两种 一.通过委托+事件的方法进行传值 (点击Form2中的button1按钮,将会把Form2中的textbox.text 传给Form1中的 lable.text ...
- Scrum之Sprint会议
Scrum的项目过程有一系列的Sprint组成. Sprint的长度一般控制在2-4周. 通过固定的周期保持良好的节奏. 产品的设计.开发.测试都在Sprint期间完成. Sprint结束时交付可以工 ...
- 性能测试-ApacheBench
基本简介 ApacheBench 是一个指令列程式,专门用来执行网站服务器的运行效能,特别是针对Apache 网站服务器.这原本是用来检测 Apache 网站服务器能够提供的效能,特别是可以看出Apa ...
- Spark on Yarn遇到的几个问题
1 概述 Spark的on Yarn模式,其资源分配是交给Yarn的ResourceManager来进行管理的,但是目前的Spark版本,Application日志的查看,只能通过Yarn的yarn ...
- 第三百三十二天 how can I 坚持
今天一大早,住的这就施工了,被吵醒了.. 下午去了趟小米之家,小米5还行,黑科技不黑,哈哈. 小米5黑科技不太黑,就知道造词,整体感觉还行,就是感觉屏幕有点长,小米之家人倒是不少,还有老太太去小米之家 ...
- 第二百三十五天 how can I 坚持
其实昨天听遗憾的,尽头看了新闻,有好多人都出去赏雪了,可惜了,最遗憾的是没有叫上你一块去. 晚上喝了点酒,抽了两根烟,以前基本不喝酒,就别提抽烟了,陈小春的<算你狠>,该如何是好. 经常在 ...
- MYSQL数据库重点:自定义函数、存储过程、触发器、事件、视图
一.自定义函数 mysql自定义函数就是实现程序员需要sql逻辑处理,参数是IN参数,含有RETURNS字句用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句. 语法: 创建: ...
- Heritrix 3.1.0 源码解析(三十七)
今天有兴趣重新看了一下heritrix3.1.0系统里面的线程池源码,heritrix系统没有采用java的cocurrency包里面的并发框架,而是采用了线程组ThreadGroup类来实现线程池的 ...
- PHP时间格式化封装函数
/*格式化时间戳为小时,分钟,秒,几天前等 */function dgmdate($timestamp, $format = 'dt', $timeoffset = '9999', $uformat ...
- Java获取IP地址:request.getRemoteAddr()注意
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户 ...