沙盒文件

     //******************** 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篇&(二)沙盒文件的更多相关文章

  1. iOS开发——数据持久化Swift篇&使用Core Data进行数据持久化存储

    使用Core Data进行数据持久化存储   一,Core Data介绍 1,Core Data是iOS5之后才出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成 ...

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

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

  3. iOS开发——数据持久化Swift篇&(一)NSUserDefault

    NSUserDefault //******************** 5.1 NSUserDefault和对象归档 func useNSUserDefault() { //通过单利来创建一个NSU ...

  4. iOS开发——数据持久化Swift篇&iCloud云存储

    iCloud云存储 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super. ...

  5. iOS开发——数据持久化Swift篇&(四)CoreData

    CoreData import CoreData class ViewController: UIViewController { override func viewDidLoad() { supe ...

  6. iOS开发——数据持久化Swift篇&(三)SQLite3

    SQLite3 使用 //******************** 5.3 SQLite3存储和读取数据 func use_SQLite3() { //声明一个Documents下的路径 var db ...

  7. iOS开发——数据持久化Swift篇&通用文件存储

    通用文件存储 import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextFie ...

  8. iOS开发——数据持久化Swift篇&SettingBundle

    SettingBundle import UIKit class ViewController: UIViewController { var userDefault = NSUserDefaults ...

  9. iOS开发——数据持久化Swift篇&模型对象归档

    模型对象归档 import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextFie ...

随机推荐

  1. ajax 第一个程序

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 第三百三十四天 how can I 坚持

    I give up my dream that day,else,I coming on,the day my heart is die…… 那天,梦已碎,那天,心已死. 晚上看了个电影<奔爱& ...

  3. linux 下查找大于100M的文件

    命令行如下 find . -type f -size +100M Linux系统下查找大文件或目录的技巧 当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢?以易读 ...

  4. 删除qq历史签名

    我们在设置新的个性签名的时候之前的签名会被记录,我们可以用手机qq删除这些历史签名,告别过去,做崭新的自己. 到需要删除的历史签名, 从右至左滑动屏幕

  5. HDU 5884 Sort (二分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5884 nn个有序序列的归并排序.每次可以选择不超过kk个序列进行合并,合并代价为这些序列的长度和.总的 ...

  6. Objective-C 学习记录--toches、Motion/Size/Rect/Point/CGFloat/protocol

    - (void)touchesBegan touchesEnd touchesCancelled touchesMoved //代表的是手指在屏幕上的动作,开始 结束 取消 移动 //还有就是代表摇动 ...

  7. 未能加载文件或程序集"System.Data,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"或它的某一个依赖项。系统找不到指定的文件。

    sqlserver 2005打开出现无法正常访问数据,提示信息: 未能加载文件或程序集"System.Data,Version=2.0.0.0,Culture=neutral,PublicK ...

  8. 错误"因为数据库正在使用,所以无法获得对数据库的独占访问权"的解决方案

    今天在还原数据库的时候,提示"因为数据库正在使用,所以无法获得对数据库的独占访问权",无论我是重启数据库,还是重启计算机,都不能解决问题,多番尝试后,终于解决了该问题.现将引发该问 ...

  9. 8.实现(Realization)

    实现关系是用来描述接口和实现接口的类或者构建结构之间的关系,接口是操作的集合,而这些操作就用于规定类或者构建结构的一种服务. 在接口和类之间的实现关系中,类实现了接口,类中的操作实现了接口中所声明的操 ...

  10. spring中propertyplaceholderconfigurer简介

    Spring的框架中为您提供了一个 BeanFactoryPostProcessor 的实作类别: org.springframework.beans.factory.config.PropertyP ...