fileManager创建文件、文件夹, fileHandel文件操作

        //管理文件文件夹, 创建、删除、移动、复制,  整个文件的管理
        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()

你可能感兴趣的:(fileManager创建文件、文件夹, fileHandel文件操作)