如何在Swift
的Documents目录中检查文件是否存在
我正在使用[ .writeFilePath ]
方法将图像保存到Documents目录中,并且我想在每次启动应用程序时加载它。但是如果没有保存的图像,我有一个默认的图像。
但是我就是想不通如何使用[ func fileExistsAtPath(_:) ]
函数。谁能给出一个使用函数的例子,其中传递了一个路径参数。
我相信我不需要在其中粘贴任何代码,因为这是一个通用的问题。任何帮助都将不胜感激。
干杯
发布于 2014-06-12 18:08:55
它对用户非常友好。只需使用NSFileManager的defaultManager单例,然后使用fileExistsAtPath()
方法,该方法只接受一个字符串作为参数,并返回一个布尔值,允许将其直接放入if语句中。
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentDirectory = paths[0] as! String
let myFilePath = documentDirectory.stringByAppendingPathComponent("nameOfMyFile")
let manager = NSFileManager.defaultManager()
if (manager.fileExistsAtPath(myFilePath)) {
// it's here!!
}
请注意,在Swift 2中,向下转换为String不是必需的。
发布于 2017-06-19 15:19:30
非常简单:如果您的路径是一个URL实例,则通过' path‘方法转换为字符串。
let fileManager = FileManager.default
var isDir: ObjCBool = false
if fileManager.fileExists(atPath: yourURLPath.path, isDirectory: &isDir) {
if isDir.boolValue {
//it's a Directory path
}else{
//it's a File path
}
}
发布于 2019-01-22 08:57:53
这在swift4中可以很好地工作:
func existingFile(fileName: String) -> Bool {
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = NSURL(fileURLWithPath: path)
if let pathComponent = url.appendingPathComponent("\(fileName)") {
let filePath = pathComponent.path
let fileManager = FileManager.default
if fileManager.fileExists(atPath: filePath)
{
return true
} else {
return false
}
} else {
return false
}
}
您可以使用此调用进行检查:
if existingFile(fileName: "yourfilename") == true {
// your code if file exists
} else {
// your code if file does not exist
}
我希望它对某些人有用。@;-]
https://stackoverflow.com/questions/24181699
复制相似问题