在Swift中获取文件大小

我尝试了几种方法来获取文件大小,但始终为零。

let path = NSBundle.mainBundle().pathForResource("movie", ofType: "mov")

let attr = NSFileManager.defaultManager().attributesOfFileSystemForPath(path!, error: nil)

if let attr = attr {

let size: AnyObject? = attr[NSFileSize]

println("File size = \(size)")

}

我在日志中: File size = nil

回答:

使用attributesOfItemAtPath而不是attributesOfFileSystemForPath

+调用attr上的.fileSize()。

var filePath: NSString = "your path here"

var fileSize : UInt64

var 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 = 0

do {

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 : UInt64

do {

//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)")

}

以上是 在Swift中获取文件大小 的全部内容, 来源链接: utcz.com/qa/413276.html

回到顶部