//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)

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

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

    简介 一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例. 动机与意义 这是系列文章的最后一篇.今天抽空写下,收下尾.文章本身会在第四篇的基础上,简单扩充下代码, ...

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

    原文请见 http://www.vckbase.com/index.php/wv/1158 序论 我曾发表过文件输入输出的文章,现在觉得有必要再写一点.文件 I/O 在C++中比烤蛋糕简单多了. 在这 ...

  3. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )

    对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...

  4. Csharp 简单操作Word模板文件

    原文:Csharp 简单操作Word模板文件 1.创建一个模板的Word文档  Doc1.dot 内容为: To: <Name> Sub:<Subject> Website i ...

  5. 本地Eclipse连接HDFS进行简单的文件操作

    昨天总结了一点自己在搭建Hadoop完全分布式环境过程中遇到的几个小问题以及解决方案,今天在搭建成功的环境中进行了简单的文件操作,包括:文件目录的创建.文件的创建.本地文件的上传.文件的重命名.文件的 ...

  6. Java-IO读写文件简单操作2

    承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public ...

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

    Android入门之文件系统操作(一)简单的文件浏览器 (转)        import java.io.File; import java.util.*; import android.app.A ...

  8. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )(转载)

    本文转自http://www.cnblogs.com/zery/p/3315889.html 对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本 ...

  9. Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作

    Visual Studio 2017中使用正则修改部分内容   最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...

随机推荐

  1. 为《31天成为IT服务达人》征求正式名字

    写书时.没细想书的名字,仅仅是在想出本能够让同行或未来同行高速入门的书,如今想来还是应正式给他取个名,请朋友们帮忙哟

  2. java 中缀转后缀(逆波兰)

    import java.util.Stack; public class LeetCode_middleTransformToReversePolish { /** * @param args */ ...

  3. c#简单的调试信息、日志信息输出

    public static void ErrorLog(string mssg) { string FilePath = "D:/logs/ErrorLog.txt"; try { ...

  4. Node.js入门-Node.js 介绍

    Node.js 是什么 Node.js 不是一种独立的语言,与 PHP,Python 等"既是语言优势平台"不同,它也不是一个 JavaScrip 框架,不同于 CakePHP,D ...

  5. IOS中的自动布局

    Autolayout是一种“自动布局”技术,专门用来布局UI界面 Autolayout能很轻松地解决屏幕适配问题 Autolayout的两条核心概念:   >1 参照:通过参照其他控件或父控件来 ...

  6. [译]Stairway to Integration Services Level 16 – Flexible Source Locations (多文件导入)

    介绍 在本文中我们将利用SSIS参数,变量 以及 Foreach Loop Container 从多个源动态导入数据. 开始前我们先下载一些数据.WeatherData_Dec08_Apr09.zip ...

  7. MVC表单提交加JS验证

    做一个普通表单提交,但是要加前端验证,如下: 1. Action public ActionResult Add(ProductModelproductID) {     //operate... } ...

  8. eclipse安装PyDev插件出错No software site found at jar:file:[离线包路径]!/. Do you wish to edit the location?

    解决方法是直接将下载的离线包解压,得到plugins和features文件夹,放到Eclipse的dropins目录下.重启Eclipse,PyDev插件即可安装成功. 离线包下载地址:http:// ...

  9. Clob对象转为字符串

    项目中遇到一个问题,对方公司把打印好的报表数据存到数据库中,实际上就是把html存在Oracle中,然后需要我们在社保系统里进行查询. 但是他们把数据存放在B数据库,而我们的社保系统用的数据库是B.A ...

  10. poj 3286 统计0的个数

    #include <iostream> using namespace std; long long p; ]; long long solve(long long n){ ; ;i< ...