IOS SWIFT 简单操作文件

//Home目录
        let homeDirectory = NSHomeDirectory()
        
        //Documents目录 苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包含此目录
        let documentPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
        let documentPath = documentPaths[0] as! String
        //let documentPath = homeDirectory + "/Documents"
        
        //Library目录  这个目录下有2个子目录:Caches缓存 , Preferences偏好设置,不应该直接创建偏好设置文件而使用NSUserDefaults类
        let libraryPaths =  NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true)
        let libraryPath = libraryPaths[0] as! String
        //let libraryPath = homeDirectory + "/Library"
        
        //Cache目录 主要存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出时删除
        let cachesPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true)
        let cachesPath = cachesPaths[0] as! String
        //let cachesPath = homeDirectory + "//Library/Caches"
        
        //tmp目录  用于存放临时文件,保持应用程序再次启动过程中不需要的信息,重启后清空
        let tmpDir = NSTemporaryDirectory()
        //let tmpDir = homeDirectory + "/tmp"
        
        //操作文件
        var fileManager = NSFileManager.defaultManager()
        var error : NSError?
        
        let mydir1 = NSHomeDirectory() + "/Documents/myfolder/images"
        let mydir2 = NSHomeDirectory() + "/Documents/myfolder/films"
        let mydir3 = NSHomeDirectory() + "/Documents/myfolder/musics"
        let mydir4 = NSHomeDirectory() + "/Documents/myfolder/files"
        
        //withIntermediateDirectories 设置为true, 代表中间所有的路径目录如果不存在,都会创建
        var isSuccess : Bool = fileManager.createDirectoryAtPath(mydir1, withIntermediateDirectories: true, attributes: nil, error: &error)
        
        fileManager.createDirectoryAtPath(mydir2, withIntermediateDirectories: true, attributes: nil, error: &error)
        fileManager.createDirectoryAtPath(mydir3, withIntermediateDirectories: true, attributes: nil, error: &error)
        fileManager.createDirectoryAtPath(mydir4, withIntermediateDirectories: true, attributes: nil, error: &error)
        
        //创建文件可以通过writeToFile方法将一些对象写入到文件中
        var filePath = mydir4 + "/appInfo.txt"
        var info  = "this is test text"
        info.writeToFile(filePath, atomically: true, encoding: NSUTF8StringEncoding, error: &error)
        
        //保存图片
        var image = UIImage(named: "2.jpg")
        var data : NSData = UIImageJPEGRepresentation(image, 1.0)
        var data1 : NSData = UIImagePNGRepresentation(image)
        data.writeToFile(mydir1 + "/2.jpg", atomically: true)
        data1.writeToFile(mydir1 + "/2.png", atomically: true)
        
        //保存NSAarry
        var array = NSArray(objects: "111","222","333")
        array.writeToFile(mydir4 + "/array.plist", atomically: true)
        
        //保存NSDictionary
        var dic = NSDictionary(objects: ["1111","2222","3333"], forKeys: ["1","2","3"])
        dic.writeToFile(mydir4 + "/dictionary.plist", atomically: true)
        
        //判断目录是否存在
        var isExist = fileManager.fileExistsAtPath(filePath)
        
        //移动文件
        var filePath2 = mydir1 + "/appInfo.txt"
        fileManager.moveItemAtPath(filePath, toPath: filePath2, error: &error)
        
        //移动,重命名
        var filePath3 = mydir1 + "/appInfo2.txt"
        fileManager.moveItemAtPath(filePath2, toPath: filePath3, error: &error)
        
        //拷贝,重命名
        var filePath4 = mydir1 + "/appInfoCopy.txt"
        fileManager.copyItemAtPath(filePath3, toPath: filePath4, error: &error)
        
        //获取目录下所有文件
        var fileArray = fileManager.subpathsAtPath(mydir1)
        //println(fileArray)
        
        //获取文件各项属性
        var fileAttributes : [NSObject : AnyObject]? = NSFileManager.defaultManager().attributesOfItemAtPath(filePath2, error: &error)
        var modificationDate = fileAttributes![NSFileModificationDate] as! String
        println(modificationDate)  //2015-09-03 12:04:39 +0000
        
        //删除文件
        fileManager.removeItemAtPath(filePath4, error: &error)
        
        //删除目录下所有文件
        //方法1
        var fileArray2 : [AnyObject]? = fileManager.subpathsAtPath(mydir1)
        for f in fileArray2! {
            fileManager.removeItemAtPath(mydir1 + "/\(f)", error: &error)
        }
        //方法2
        fileManager.removeItemAtPath(mydir1, error: &error)
        fileManager.createDirectoryAtPath(mydir1, withIntermediateDirectories: true, attributes: nil, error: &error)

时间: 2024-10-11 18:16:57

IOS SWIFT 简单操作文件的相关文章

【C/C++学院】0826-文件重定向/键盘输入流/屏幕输出流/字符串输入输出/文件读写简单操作/字符文件读写二进制与文本差别/get与getline挖掘数据/二进制与文本差别/随机位置/多线程初级

文件重定向 #include<iostream> using namespace std; void main() { char str[30] = { 0 }; cin >> str; cout << str; system(str); cerr << "error for you"; cin.get(); cin.get(); } 键盘输入流 #include<iostream> #include <stdlib.h

iOS:Swift界面实例1, 简单界面

Apple推出了基于Objective-C的新语言Swift. 通过实例, 我们可以很好的感受这门新语言 注意事项: 在XCode6_Beta中, 如果有中文, IDE的自动补全功能就会失效, 所以开始调试的时候可以先用英文, 后面再用中文替代. 1. 新建iOS -> Single View Application. 2. 修改AppDelegate.swift文件 1 // 2 // AppDelegate.swift 3 // UIByCode_Swift_1_HelloWorld 4 /

实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面

简介 一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例. 动机与意义 这是系列文章的最后一篇.今天抽空写下,收下尾.文章本身会在第四篇的基础上,简单扩充下代码,实现在线下载与重置更改的功能. 如果能较为仔细地阅读前四篇文章,第五篇给出的示例,应当是可以理解为无足轻重的.但是,大多数时候,我们更多的可能只是需要一个简易的解决方案,就是那种拿来就可以用的东西,那种我们需要先能看到一个简要的示例来看下效果再解决是否再继续阅读的方案.如此,对于很久以后,由于各种原

用C++进行简单的文件I/O操作-转自VC知识库

原文请见 http://www.vckbase.com/index.php/wv/1158 序论 我曾发表过文件输入输出的文章,现在觉得有必要再写一点.文件 I/O 在C++中比烤蛋糕简单多了. 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的. 一.ASCII 输出 为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的.).这是 的一个扩展集, 提供有缓冲的文件输入输出操作

简单操作只需10秒破解PDF加密文件

简单操作只需10秒破解PDF加密文件 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51345950 如何破解PDF加密文件,如何破解PDF密码呢,破解加密的PDF文件? 从网上下载的PDF文件,由于版权的问题,作者经常会加密禁止读者复制修改等权限,如下面的PDF文档,用Adobe pdf Reader打开时,会显示"已加密"的字样,虽然可以阅读,但不能修改和标记. 为了解决这个问题,可以采用绕过破解密码这一

C++ 文件的简单操作

=================================================================== 编写程序时,很多时候都要对文件进行操作,比如从文件中读取数据,通过程序将一些数据保存到文件中等等.. 以下是c++对文件的一些简单操作. =================================================================== 一.文件输出 要将程序中的数据输出到文件中,一般需要以下5个步骤: ① 包含fstream

Csharp 简单操作Word模板文件

原文:Csharp 简单操作Word模板文件 1.创建一个模板的Word文档  Doc1.dot 内容为: To: <Name> Sub:<Subject> Website is ok geovindu 涂聚文好样的 work. CEo <Datetime> Thanks. 2.程序操作代码为: /// <summary> /// 簡單操作Word模板文件 /// 塗聚文 2011-11-03 /// 缔友计算机信息技术有限公司 /// </summa

几个简单的文件&目录操作函数

一,检测目录是否为空 function isEmptyDir($path){ $handle=opendir($path);----打开路径 while (($item=readdir($handle))!==false){----判断文件名不为假 //循环出$item,如果不是.跟..,那么在if条件里就为真,否则为(空)假 if ($item!="."&&$item!=".."){ return false; } } closedir($hand

Android入门之文件系统操作(一)简单的文件浏览器 (转)

Android入门之文件系统操作(一)简单的文件浏览器 (转)        1. import java.io.File; 2. import java.util.*; 3. 4. import android.app.Activity; 5. import android.content.Context; 6. import android.os.*; 7. import android.view.*; 8. import android.widget.*; 9. import androi