Files icon indicating copy to clipboard operation
Files copied to clipboard

The file or folder attribute may be nil

Open SF-Simon opened this issue 5 years ago • 0 comments

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
    }

SF-Simon avatar Nov 21 '18 10:11 SF-Simon