使用
attributesOfItemAtPath而不是
attributesOfFileSystemForPath
+调用attr上的.fileSize()。
var filePath: NSString = "your path here"var fileSize : UInt64var attr:NSDictionary? = NSFileManager.defaultManager().attributesOfItemAtPath(filePath, error: nil)if let _attr = attr { fileSize = _attr.fileSize();}在Swift 2.0中,我们使用do try catch模式,如下所示:
let filePath = "your path here"var fileSize : UInt64 = 0do { let attr : NSDictionary? = try NSFileManager.defaultManager().attributesOfItemAtPath(filePath) if let _attr = attr { fileSize = _attr.fileSize(); }} catch { print("Error: (error)")}在Swift 3.x / 4.0中:
let filePath = "your path here"var fileSize : UInt64do { //return [FileAttributeKey : Any] let attr = try FileManager.default.attributesOfItem(atPath: filePath) fileSize = attr[FileAttributeKey.size] as! UInt64 //if you convert to NSDictionary, you can get file size old way as well. let dict = attr as NSDictionary fileSize = dict.fileSize()} catch { print("Error: (error)")}


