NSFileManager.defaultManager().fileExistsAtPath返回

NSFileManager.defaultManager().fileExistsAtPath返回false而不是true

怎么可能?

let exists = NSFileManager.defaultManager().fileExistsAtPath(path.absoluteString)print("exists: \(exists)") //false

这是path.absoluteString

//file:///Users/kuna/Library/Developer/CoreSimulator/Devices/92BD140D-5C14-43C4-80D6-904BB9594ED6/data/Containers/Data/Application/5B818832-BB19-4047-A7F8-1487F36868D6/Documents/wishlists/68/147/128/IMG_0006.PNG

你可以看到它就在它应该在的地方:

怎么一回事?


慕妹3242003
浏览 1303回答 3
3回答

HUX布斯

显然你的path变量是NSURL(描述文件路径)。若要将路径作为字符串获取,请使用path财产,而不是absoluteString:let exists = FileManager.default.fileExists(atPath: path.path)absoluteString返回字符串格式的URL,包括file:计划等例子:let url = URL(fileURLWithPath: "/path/to/foo.txt")// This is what you did:print(url.absoluteString)// Output:     file:///path/to/foo.txt// This is what you want:print(url.path)// Output:    /path/to/foo.txt

青春有我

如果要检查路径是否存在,则应检查路径。let url = NSURL(string: "balabala")let path = url?.path//Check path

慕工程0101907

差异是绝对的,String也包括file://就像这样:file:///Users/kuna/...,路径刚刚返回/Users/kuna/...
打开App,查看更多内容
随时随地看视频慕课网APP