Почему FileManager.default.attributesOfItem возвращает текущую дату в NSFileCreationDate? - PullRequest
1 голос
/ 07 февраля 2020

Хотя я проверил другие ответы о том, как получить дату создания, но мне это не кажется удачным.

Вот так я извлекаю дату создания.

class func extractFileCreatedDate(filepath: String) -> String{

    var dateString = ""
    do{

        let aFileAttributes = try FileManager.default.attributesOfItem(atPath: filepath) as [FileAttributeKey:Any]
        let theCreationDate = aFileAttributes[FileAttributeKey.creationDate] as? Date ?? Date()

        let formatter: DateFormatter = DateFormatter()
        formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale?
        formatter.timeZone = TimeZone.init(abbreviation: "GMT")
        formatter.dateFormat = "MM/dd/yyyy HH:mm:ss"

        //MARK:- Share App Submit Date
        if let readDate:String = formatter.string(from: theCreationDate){
            dateString = readDate
        }

    } catch let theError as Error{
        print("file not found \(theError)")
    }

    return dateString
}

Таким образом, ответ, который я получил при печати:

enter image description here

И если я проверю этот файл в локальном дата создания хранилища отличается:

enter image description here

В режиме отладки я также получаю текущую дату, а не дату создания:

enter image description here enter image description here

Пожалуйста, предложите мне, если я делаю что-то не так. я ожидаю, что он должен вернуть ту же дату создания. Или, может быть, я что-то упустил, помогите мне.

Спасибо!

1 Ответ

0 голосов
/ 08 февраля 2020

CreationDate всегда будет возвращать дату создания файла из нашего приложения , а не дату создания физического хранилища (Ma c).

Для проверки этого :

1: добавьте файл в ваш пакет (созданный в прошлую дату) и протестируйте ваш код, он вернет вам текущую дату (такую ​​же, как вы получаете сейчас).

2: удалите приложение, измените дату iPhone вручную на любую дату из прошлого. Например. 01-01-2019 и запустите приложение, вы увидите, что дата создания 01-01 -2019 .

3: Измените дату на Сегодняшнюю дату снова и проверьте, вы можете видеть, что результат все еще 01-01-2019 , потому что дата создания это дата из прошлого .

Надеюсь, это поможет вам !!!

...