//管理文件文件夹, 创建、删除、移动、复制, 整个文件的管理
let fileManager = NSFileManager.defaultManager()
let path = NSHomeDirectory() + "/Documents/1.plist"
if fileManager.fileExistsAtPath(path) {
print("文件存在")
//删除文件
try! fileManager.removeItemAtPath(path)
}
else {
let s = "asdfghjkl;"
//创建文件并且给文件给内容(contents是NSDate类型)
fileManager.createFileAtPath(path, contents: s.dataUsingEncoding(NSUTF8StringEncoding), attributes: nil)
}
let dir = NSHomeDirectory() + "/Documents/2/3/4"
// 创建文件夹,第二个参数为true表示当需要创建文件夹所处的文件夹不存在 时,自动创建父文件夹
try! fileManager.createDirectoryAtPath(dir, withIntermediateDirectories: true, attributes: nil)
//拿取文件,获取文件属性
let attrs = try! fileManager.attributesOfItemAtPath(path)
//打印文件大小
print(attrs[NSFileSize])
}
//NSFileHandel
//没有创建文件能力, 只能用于操作文件内容
//Read: 只读, Update: 修改, Write: 只写
let fileHandel = NSFileHandle(forReadingAtPath: path)
//偏移量: 记录当前已经操作到文件的某个位置
//每一次操作都会导致偏移量自动发生变化
let data = fileHandel?.readDataOfLength(5) //NSData
print(NSString(data: data!, encoding: NSUTF8StringEncoding))
//将偏移量移动到文件尾
fileHandel?.seekToEndOfFile()
//移动偏移量到具体哪个位置,
fileHandel?.seekToFileOffset(0)
//当前偏移量所处位置
let s = fileHandel?.offsetInFile
print(s)
//读取整个文件内容
let data1 = fileHandel?.readDataToEndOfFile()
print(NSString(data: data1!, encoding: NSUTF8StringEncoding))
//强制将文件存到硬盘中
fileHandel?.synchronizeFile()
//文件操作完成,必须要关闭文件
fileHandel?.closeFile()
let str = "B C"
//注意: 写文件也有偏移量, 默认会从0开始
let fileHandle2 = NSFileHandle(forWritingAtPath: path)
fileHandle2?.writeData(str.dataUsingEncoding(NSUTF8StringEncoding)!)
fileHandle2?.closeFile()
网友评论