-
获取文件列表
public func getAllFile() -> [String] { var filePaths = [String]() do { var array = try FileManager.default.contentsOfDirectory(atPath: getFilePath()) sortFileArray(sort: &array) for fileName in array { var isDir: ObjCBool = true let fullPath = getFilePath() + fileName if FileManager.default.fileExists(atPath: fullPath, isDirectory: &isDir) { if !isDir.boolValue, fileName.hasSuffix("plist") { let fileInfo = try FileManager.default.attributesOfItem(atPath: fullPath) print("fileInfo[creationDate] \(fileInfo[.creationDate])") filePaths.append(fileName) } } } } catch let error as NSError { print("error \(error)") } return filePaths } private func getFilePath() -> String { NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! + "/" }
-
按照创建日期进行排序
fileprivate func sortFileArray(sort array:inout [String]){ for i in 0 ..< array.count { for j in i + 1 ..< array.count { let fullPath = getFilePath() + array[i] let nextPath = getFilePath() + array[j] do { if let fileDate = try FileManager.default.attributesOfItem(atPath: fullPath)[.creationDate] as? Date ,let nextDate = try FileManager.default.attributesOfItem(atPath: nextPath)[.creationDate] as? Date, fileDate.compare(nextDate) == .orderedAscending{ exchangeValue(&array, i, j) } } catch let error as NSError { print("error \(error)") } } } } fileprivate func exchangeValue<T>(_ nums:inout [T],_ a:Int,_ b:Int){ (nums[a],nums[b]) = (nums[b],nums[a]) }