一尘不染

如何在Swift的Documents目录中检查文件是否存在?

swift

如何检查文件目录中Swift是否存在文件?

我正在使用[ .writeFilePath ]将图像保存到Documents目录中的方法,并且每次启动应用程序时都想加载它。但是,如果没有保存的图像,我将使用默认图像。

但是我只是无法理解如何使用该[ func fileExistsAtPath(_:) ]功能。有人可以举一个使用传递路径参数的函数的例子。

我相信我不需要在其中粘贴任何代码,因为这是一个通用问题。任何帮助都感激不尽。

干杯


阅读 817

收藏
2020-07-07

共1个答案

一尘不染

Swift 4.x 版本

    let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
    let url = NSURL(fileURLWithPath: path)
    if let pathComponent = url.appendingPathComponent("nameOfFileHere") {
        let filePath = pathComponent.path
        let fileManager = FileManager.default
        if fileManager.fileExists(atPath: filePath) {
            print("FILE AVAILABLE")
        } else {
            print("FILE NOT AVAILABLE")
        }
    } else {
        print("FILE PATH NOT AVAILABLE")
    }

Swift 3.x 版本

    let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
    let url = URL(fileURLWithPath: path)

    let filePath = url.appendingPathComponent("nameOfFileHere").path
    let fileManager = FileManager.default
    if fileManager.fileExists(atPath: filePath) {
        print("FILE AVAILABLE")
    } else {
        print("FILE NOT AVAILABLE")
    }

Swift 2.x 版本,需要使用 URLByAppendingPathComponent

    let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
    let url = NSURL(fileURLWithPath: path)
    let filePath = url.URLByAppendingPathComponent("nameOfFileHere").path!
    let fileManager = NSFileManager.defaultManager()
    if fileManager.fileExistsAtPath(filePath) {
        print("FILE AVAILABLE")
    } else {
        print("FILE NOT AVAILABLE")
    }
2020-07-07