[Swift2.0系列]Error Handling(项目应用篇)

字数 136阅读 507

1.FileManager中的应用

倘若你只是想看FileManager中的 Error Handling是如何实现的,请找到3.删除文件以及4.获取文件信息。我分别为你提供了do-catch以及try?的使用方法。

打开Xcode,选中Single View Application,输入项目名称例如FileManagerDemo,点击Next,选择文件放置路径。此时你已经建立了一个新的工程。

选中ViewController.swift文件,找到viewDidload()文件,写入如下的代码。

override func viewDidLoad() {
        super.viewDidLoad()
        
        // 1.获取路径操作代码

        // 沙盒下有三个目录 分别是Documents/Library/tmp 通常我们将文件放到Documents下
        // 获取document的文件夹路径
        var path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        let pathDocuments = path[0]
        print(pathDocuments)

        // 2. 创建文件操作
        let file1 = "file1.txt"
        let file2 = "file2.txt"
        let file1Path: String = NSString(format: "%@/%@", pathDocuments,file1) as String//生成一个绝对路径
        let file2Path: String = NSString(format: "%@/%@", pathDocuments,file2) as String//生成一个绝对路径
        // 进行file1文件生成操作
        if NSFileManager.defaultManager().fileExistsAtPath(file1Path as String){
            print("文件已存在")
        }else{
            let data = "Hello world By Swift2.0 file1".dataUsingEncoding(NSUTF8StringEncoding)
            NSFileManager.defaultManager().createFileAtPath(file1Path, contents: data, attributes: nil)//创建新文件 //当然也有直接向已存在文件中写入内容的方法
        }
        // 进行file2文件生成操作
        if NSFileManager.defaultManager().fileExistsAtPath(file2Path as String){
            print("文件已存在")
        }else{
            let data = "Hello world By Swift2.0 file2".dataUsingEncoding(NSUTF8StringEncoding)
            NSFileManager.defaultManager().createFileAtPath(file2Path, contents: data, attributes: nil)//创建新文件 //当然也有直接向已存在文件中写入内容的方法
        }
        
        // 3.删除文件 将原先的创建的删除
        let deletePath = NSString(format: "%@/%@", pathDocuments,file1) as String
        print("要删除的文件路径:\(deletePath)")
        do{
            try NSFileManager.defaultManager().removeItemAtPath(deletePath)
        }catch let error as NSError{
            print("error is \(error)")
        }
        
        // 以下内容只做拓展
        /*
            var arrayContent = NSArray(contentsOfFile: filePath)//必须是完整路径
            var dictContent = NSDictionary(contentsOfFile: filePath)
            var imgContent = UIImage(contentsOfFile: filePath)
        */
        
        // 4.获取文件信息
        // 文件属性 是一个字典类型
        let attrFile1 = try? NSFileManager.defaultManager().attributesOfItemAtPath(file1Path)
        let attrFile2 = try? NSFileManager.defaultManager().attributesOfItemAtPath(file2Path)
        print(attrFile1)//打印nil 因为file1不存在
        print(attrFile2)//打印出信息
        
    }

内容持续补充中

推荐阅读更多精彩内容