Swift 獲取文件(目錄)屬性(大小、創(chuàng)建/修改日期等)

獲取文件屬性主要用到FileManager的實(shí)例方法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)")
}

發(fā)現(xiàn)以上時(shí)間為GMT時(shí)間,需要轉(zhuǎn)換為本地時(shí)間。附上將轉(zhuǎn)換時(shí)區(qū)的方法,將以上方法替換為:

//將GMT時(shí)間轉(zhuǎn)換為本地時(shí)間

//獲取本地時(shí)區(qū)及與GMT的時(shí)間間隔
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)")
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類(lèi)型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類(lèi)型 使用基本類(lèi)型...
    大學(xué)一百閱讀 3,684評(píng)論 0 4
  • 時(shí)間(date time)應(yīng)該是一個(gè)精確的點(diǎn),以便能夠進(jìn)行比較。但是如何能讓他成為一個(gè)精確的點(diǎn)呢?一般的,如果需要...
    遠(yuǎn)程板磚閱讀 1,975評(píng)論 1 8
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,649評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,741評(píng)論 18 399
  • 日期/時(shí)間在開(kāi)發(fā)中經(jīng)常使用, 但涉及到的無(wú)非是時(shí)間轉(zhuǎn)字符串顯示出來(lái), 或者根據(jù)字符串獲取時(shí)間對(duì)象, 其他的涉及很少...
    流火緋瞳閱讀 23,981評(píng)論 14 31

友情鏈接更多精彩內(nèi)容