Swift 获取文件(目录)属性(大小、创建/修改日期等)

获取文件属性主要用到FileManager的实例方法attributesOfItem(atPath:)

let filePath = "xxx"

do {
    let fileAttributes = try FileManager.default.attributesOfItem(atPath: filePath)
    if let fileSize:NSNumber = fileAttributes[FileAttributeKey.size] as! NSNumber? {
        print("File Size: \(fileSize.uint32Value)")
    }
    
    if let ownerName = fileAttributes[FileAttributeKey.ownerAccountName] {
        print("File Owner: \(ownerName)")
    }
 
    if let creationDate = fileAttributes[FileAttributeKey.creationDate] {
        print("File Creation Date: \(creationDate)")
    }
    
    if let modificationDate = fileAttributes[FileAttributeKey.modificationDate] {
        print("File Modification Date: \(modificationDate)")
    }
    
} catch let error as NSError {
    print("Get attributes errer: \(error)")
}

发现以上时间为GMT时间,需要转换为本地时间。附上将转换时区的方法,将以上方法替换为:

//将GMT时间转换为本地时间

//获取本地时区及与GMT的时间间隔
let timeZone = NSTimeZone.system
let interval: TimeInterval = TimeInterval(timeZone.secondsFromGMT())

if let creationDate = fileAttributes[FileAttributeKey.creationDate] {
    let localCreateDate = (creationDate as! NSDate).addingTimeInterval(interval)
    print("File Creation Date: \(localCreateDate)")
}

if let modificationDate = fileAttributes[FileAttributeKey.modificationDate] {
    let localModDate = (modificationDate as! NSDate).addingTimeInterval(interval)
    print("File Modification Date: \(localModDate)")
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,268评论 0 4
  • 时间(date time)应该是一个精确的点,以便能够进行比较。但是如何能让他成为一个精确的点呢?一般的,如果需要...
    远程板砖阅读 1,876评论 1 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 日期/时间在开发中经常使用, 但涉及到的无非是时间转字符串显示出来, 或者根据字符串获取时间对象, 其他的涉及很少...
    流火绯瞳阅读 23,734评论 14 31