JohnSundell / Files

A nicer way to handle files & folders in Swift
MIT License
2.53k stars 182 forks source link

The file or folder attribute may be nil #73

Open SF-Simon opened 5 years ago

SF-Simon commented 5 years ago

Hello, yes, my English is still so bad.

I recently tried to write a Cloud Document manager in Files, and I found that in a particular case, the loadModificationDate method might crash my application. My guess is that Cloud is downloading or synchronizing files.

I tried to find the reason, and finally found that try! fileManager.attributesOfItem(atPath: path) is likely to make a mistake, because at this time it may not be able to get any attributes at all. Or return attributes[FileAttributeKey.modificationDate] as! Date is wrong because it may not have this attribute.

So I think Files, the way to read file attributes, should be nil. This makes Files more rigorous..

Just like this:

    func loadModificationDate() -> Date? {
        let attributes = try? fileManager.attributesOfItem(atPath: path)
        return attributes?[FileAttributeKey.modificationDate] as? Date
    }