Swift3 文件操作常用方法汇总
基于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 文件操作常用方法汇总的更多相关文章
- Joomla 文件操作常用方法
今天介绍下joomla下文件操作常用方法,这些方法在文件读写,图片文件上传,等都有用处. jimport('joomla.filesystem.file'); $j = new JFile(); ge ...
- Java最全文件操作实例汇总
本文实例汇总了Java文件操作.分享给大家供大家参考,具体如下: 1.创建文件夹 ? 1 2 3 4 5 6 7 8 9 10 11 //import java.io.*; File myFolder ...
- C# 文件操作常用方法总结
需引用 System.IO Path为绝对路径 检测指定目录是否存在 Directory.Exists(Path) 创建目录 Directory.CreateDirectory(Path) 删除目录 ...
- C 语言文件操作
C 语言文件操作 1. 数据流: 程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流. 所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不 ...
- python file文件操作--内置对象open
说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前工作目录)或者一个绝对路径,当传入路径不存在此文件会报错 ...
- DAY08、文件操作
一.文件操作模式汇总: 主模式: r:读模式 w:写模式(无创建,有清空) a:追加(有创建的功能) x:写,必须自己创建文件,否则报错 从模式: t:文本操作(默认模式)r >rt,w> ...
- python基础-第四篇-4.2文件操作
基本打开模式 文件操作的流程:打开文件,操作文件,关闭文件 打开文件方法:open(文件名,模式,编码) file = open(‘文件名’) 模式在不给值的情况下,默认为只读,而且如果是非当前的目录 ...
- [转]python file文件操作--内置对象open
python file文件操作--内置对象open 说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...
- python03篇 字符串常用方法和文件操作(一)
一.字符串常用方法 s1 = ' abcsfsfaadfdd ' s = s1.strip() print(s) print(len(s.strip())) print(s.count('a')) # ...
随机推荐
- Laravel学习笔记之Session源码解析(上)
说明:本文主要通过学习Laravel的session源码学习Laravel是如何设计session的,将自己的学习心得分享出来,希望对别人有所帮助.Laravel在web middleware中定义了 ...
- 用条件随机场CRF进行字标注中文分词(Python实现)
http://www.tuicool.com/articles/zq2yyi http://blog.csdn.net/u010189459/article/details/38546115 主题 ...
- [转]学习块格式化上下文(BlockFormattingContext)
原文:https://www.cnblogs.com/elcarim5efil/p/4745796.html 格式化上下文 格式化上下文( formatting contexts )├── 块级格 ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(七)针对hadoop2.9.0启动DataManager失败问题
DataManager启动失败 启动过程中发现一个问题:slave1,slave2,slave3都是只启动了DataNode,而DataManager并没有启动: [spark@slave1 hado ...
- Jquery中"$(document).ready(function(){ })"函数的使用详解
Jquery是优秀的Javascrīpt框架,$是jquery库的申明,它很不稳定(我就常遇上),换一种稳定的写法jQuery.noConflict(); jQuery(document).ready ...
- GPUImage API文档之GPUImageContext类
GPUImageContext类,提供OpenGL ES基本环境,我们一般不会用到,所以讲的很简单. 属性 @property(readonly, nonatomic) dispatch_queue_ ...
- jQuery函数的等价原生函数代码示例
选择器 jQuery的核心之一就是能非常方便的取到DOM元素.我们只需输入CSS选择字符串,便可以得到匹配的元素.但在大多数情况下,我们可以用简单的原生代码达到同样的效果. .代码如下: //---- ...
- Android 之 应用未捕获异常处理
最近开发一款低功耗蓝牙通讯的 Android 应用,安装使用时多次出现“ 抱歉,xxx已停止 ”.现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出 ...
- Selenium2(webdriver)_定位不到元素常见原因及解决办法
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况,一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理 ...
- Want to write a book? Use word count to stay on track
http://paloalto.patch.com/groups/maria-murnanes-blog/p/bp--want-to-write-a-book-use-word-count-to-st ...