基于swift3的一些常用文件操作方法:

1、创建文件(文件夹)

2、读取文件(根据名称)

3、读取文件(根据路径)

4、判断文件是否存在(根据名称)

5、判断文件是否存在(根据路径)

6、删除指定名称文件

7、删除指定路径文件

8、删除所有文件

9、写入文件

代码:

//第一层文件夹名称
let CACHEPATH = "K12Cache" //内层文件夹名称
let MarkingPath = "K12Cache/Marking/"
class CacheUtils{

    //缓存路径(这里用的沙盒cache文件,非document,可根据需求更改)
class func getCachePath()->String{
var cacheDir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, .userDomainMask, true).first!
if(!cacheDir.hasSuffix("/")){
cacheDir += "/"
}
cacheDir += CACHEPATH + "/"
return cacheDir
} //获得NSFileManager
class func getFileManager()->FileManager{
return FileManager.default
} //判断文件夹是否存在
class func dirExists(dir:String)->Bool{
return getFileManager().fileExists(atPath: dir)
} //判断文件是否存在
class func fileExists(path:String)->Bool{
return dirExists(dir: path)
} //判断是否存在,存在则返回文件路径,不存在则返回nil
class func fileExistsWithFileName(fileName:String)->String?{
let dir = getCachePath()
if(!dirExists(dir: dir)){
return nil
}
let filePath = dir + fileName return fileExists(path: filePath) ? filePath : nil
} //创建文件夹
class func createDir(dir:String)->Bool{
let fileManager = getFileManager()
do{
try fileManager.createDirectory(at: NSURL(fileURLWithPath: dir, isDirectory: true) as URL, withIntermediateDirectories: true, attributes: nil)
}catch{
return false
}
return true
} /// 根据文件名创建路径
///
/// - Parameter fileName: <#fileName description#>
/// - Returns: <#return value description#>
class func createFilePath(fileName:String)->String?{
let dir = getCachePath()
if(!dirExists(dir: dir) && !createDir(dir: dir)){
return nil
}
let filePath = dir + fileName
if(fileExists(path: filePath)){
do{
try getFileManager().removeItem(atPath: filePath)
}catch{
return nil
} }
return filePath
} /// 删除文件 - 根据文件名称
///
/// - Parameter fileName: <#fileName description#>
/// - Returns: <#return value description#>
class func deleteFileWithName(fileName:String)->Bool{
guard let filePath = fileExistsWithFileName(fileName: fileName) else{
return true
}
return deleteFile(path: filePath)
} /// 删除文件 - 根据文件路径
///
/// - Parameter path: <#path description#>
/// - Returns: <#return value description#>
class func deleteFile(path:String)->Bool{
if(!fileExists(path: path)){
return true
}
let fileManager = getFileManager()
do{
try fileManager.removeItem(atPath: path)
}catch{
return false
} return true
} /**
清除所有的缓存 - returns: Bool
*/
class func deleteAll()->Bool{
let dir = getCachePath() if !dirExists(dir: dir){
return true
}
let manager = getFileManager()
do{
try manager.removeItem(atPath: dir)
}catch{
return false
}
return true
} //读取文件 -(根据路径)
class func readFileFromCache(path:String)->NSData?{
var result:NSData?
do{
result = try NSData(contentsOfFile: path, options: NSData.ReadingOptions.uncached)
}catch{
return nil
}
return result
} //读取文件 -(根据文件名)
class func readFile(fileName:String)->NSData?{ guard let filePath = fileExistsWithFileName(fileName: fileName) else{
return nil
} return readFileFromCache(path: filePath)
} /// 写文件
///
/// - Parameters:
/// - fileName: 文件名称
/// - data: 数据data
/// - Returns: <#return value description#>
class func writeFile(fileName:String,data:NSData)->Bool{ guard let filePath = createFilePath(fileName: fileName) else{
return false
} return data.write(toFile: filePath, atomically: true)
} }

Swift3 文件操作常用方法汇总的更多相关文章

  1. Joomla 文件操作常用方法

    今天介绍下joomla下文件操作常用方法,这些方法在文件读写,图片文件上传,等都有用处. jimport('joomla.filesystem.file'); $j = new JFile(); ge ...

  2. Java最全文件操作实例汇总

    本文实例汇总了Java文件操作.分享给大家供大家参考,具体如下: 1.创建文件夹 ? 1 2 3 4 5 6 7 8 9 10 11 //import java.io.*; File myFolder ...

  3. C# 文件操作常用方法总结

    需引用 System.IO Path为绝对路径 检测指定目录是否存在 Directory.Exists(Path) 创建目录 Directory.CreateDirectory(Path) 删除目录 ...

  4. C 语言文件操作

    C 语言文件操作 1. 数据流:     程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流.     所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不 ...

  5. python file文件操作--内置对象open

    说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前工作目录)或者一个绝对路径,当传入路径不存在此文件会报错 ...

  6. DAY08、文件操作

    一.文件操作模式汇总: 主模式: r:读模式 w:写模式(无创建,有清空) a:追加(有创建的功能) x:写,必须自己创建文件,否则报错 从模式: t:文本操作(默认模式)r >rt,w> ...

  7. python基础-第四篇-4.2文件操作

    基本打开模式 文件操作的流程:打开文件,操作文件,关闭文件 打开文件方法:open(文件名,模式,编码) file = open(‘文件名’) 模式在不给值的情况下,默认为只读,而且如果是非当前的目录 ...

  8. [转]python file文件操作--内置对象open

    python file文件操作--内置对象open   说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...

  9. python03篇 字符串常用方法和文件操作(一)

    一.字符串常用方法 s1 = ' abcsfsfaadfdd ' s = s1.strip() print(s) print(len(s.strip())) print(s.count('a')) # ...

随机推荐

  1. 国外物联网平台(1):亚马逊AWS IoT

    国外物联网平台(1)——亚马逊AWS IoT 马智 平台定位 AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互. AWS IoT可支持数十亿台设备和数万亿条消息,并 ...

  2. mongodb 按配置文件mongodb.conf启动

    命令如下 mongod --config /etc/mongodb.conf

  3. Android -- 屏幕亮度

    获取屏幕亮度 int getScreenBrightness(Activity activity) { int value = 0; ContentResolver cr = activity.get ...

  4. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)” 清晰讲解logistic-good!!!!!!

    原文:http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D ...

  5. 逻辑回归应用之Kaggle泰坦尼克之灾

    机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾 标签: 机器学习应用 2015-11-12 13:52 3688人阅读 评论(15) 收藏 举报 本文章已收录于:  机器学习知识库  分类 ...

  6. lvs 隧道模式请求没有回应的解决

    众所周知,lvs共有三种转发机制:NAT,IPTUNNELING与DIRECT ROUTING 我在做隧道模式实验时遇到了一个问题,客户端向虚拟ip(即隧道0的ip)发送请求后,lvs服务器接收到了请 ...

  7. JavaScript判断变量是否为数组的方法(Array)

    废话不多说直接上一个代码: 1.这里是通用的检测方法 /* * 判断是否是数组 */ function isArray(obj){ return Object.prototype.toString.c ...

  8. jQuery Jcrop 图像裁剪

    jQuery Jcrop 图像裁剪 http://code.ciaoca.com/jquery/jcrop/ cropper.js 实现HTML5 裁剪图片并上传(裁剪上传头像.) https://b ...

  9. android中实现简单的聊天功能

    这个例子只是简单的实现了单机版的聊天功能,自己跟自己聊,啦啦~~ 主要还是展示RecyclerView控件的使用吧~ 参考我之前写的文章: android中RecyclerView控件的使用 andr ...

  10. NSobject 结构

    参考地址:  https://iosdevelopmenttutorials.wordpress.com/tag/uiscrollview/ Apple Documentation