- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
当我使用方法.fileExists(atPath:)
判断文件是否存在于文件系统中时,该方法总是返回false给我。我检查了文件系统,文件确实存在。这是我的代码:
let filePath = url?.path
var isDir : ObjCBool = false
if(self.fileManager.fileExists(atPath: filePath!, isDirectory: &isDir)){
let result = NSData(contentsOfFile: filePath!)
}
或
let filePath = url?.path
if(self.fileManager.fileExists(atPath: filePath!)){
let result = NSData(contentsOfFile: filePath!)
}
if 子句将始终被跳过。
最佳答案
我假设您的 url
是 URL
类型。如果是这样,试试这个:
let filePath = url?.path // always try to work with URL when accessing Files
if(FileManager.default.fileExists(atPath: filePath!)){ // just use String when you have to check for existence of your file
let result = NSData(contentsOf: url!) // use URL instead of String
}
说够了,你应该像这样改变你的实现:
if(FileManager.default.fileExists(atPath: (url?.path)!)){ // just use String when you have to check for existence of your file
let result = NSData(contentsOf: url!) // use URL instead of String
}
编辑:1
还有更好的方法,你可以称之为 swift-way (:D)。您不必显式检查文件是否存在。
guard let result = NSData(contentsOf: fileURL) else {
// No data in your fileURL. So no data is received. Do your task if you got no data
// Keep in mind that you don't have access to your result here.
// You can return from here.
return
}
// You got your data successfully that was in your fileURL location. Do your task with your result.
// You can have access to your result variable here. You can do further with result constant.
print(result)
Objective-C
ish NS
前缀的 Swift 3.0+ 更新:do {
let result = try Data(contentsOf: fileURL)
print(result)
} catch {
print(error)
}
关于ios - Swift 3.0 FileManager.fileExists(atPath :) always return false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42897844/
我有一个包含日期类型和复选框类型的表单,当复选框被选中时,日期类型只是必填字段。 因此复选框称为overrideDates,日期字段为overrideDate 所以我创建了一个这样的约束: isOve
我的程序中有以下代码行,这些代码取自 Stephen G. Kochan 的第四版《Objective-C 编程》: [fileManager createDirectoryAtPath:DATABA
在 OS X 桌面应用程序中 NSFileManager *manager = [NSFileManager defaultManager]; NSDictionary *dirMeta = [NSD
我有一个自定义单元格,它是 UITableViewCell 的子类,称它为 Cell。 我已通过 Storyboard将 UITableViewCell 添加到 tableview(tableview
当我使用方法.fileExists(atPath:)判断文件是否存在于文件系统中时,该方法总是返回false给我。我检查了文件系统,文件确实存在。这是我的代码: let filePath = url?
我正在使用 swift ubuntu docker:https://github.com/IBM-Swift/swift-ubuntu-docker 然后尝试将文件从路径 A 复制到路径 B。在执行过
我是一名优秀的程序员,十分优秀!