DataModel.swift 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //
  2. // DataModel.swift
  3. // KdanAuto
  4. //
  5. // Created by 朱东勇 on 2022/11/21.
  6. //
  7. import Foundation
  8. let kLoadDirectoryPathKey : String = "kLoadDirectoryPathKey";
  9. let kOriginPathComponent : String = "Origin Files"
  10. let kResultPathComponent : String = "Result Files"
  11. let kCheckPathComponent : String = "Check Files"
  12. let kLatestReportIDKey : String = "LatestReportID"
  13. class DataModel : NSObject {
  14. static var shared : DataModel = DataModel()
  15. var _directoryPath : String = ""
  16. /// Setter & Getter
  17. public func setDirectoryPath(_ path:String) {
  18. let userDefaults = UserDefaults.standard
  19. userDefaults.setValue(path, forKey: kLoadDirectoryPathKey)
  20. userDefaults.synchronize()
  21. }
  22. public func directoryPath() -> String {
  23. var path = UserDefaults.standard.value(forKey: kLoadDirectoryPathKey)
  24. if path == nil {
  25. path = ""
  26. }
  27. return path as! String
  28. }
  29. // Expand
  30. public func setIsExpand(_ fileType:String, expand:Bool) {
  31. let userDefaults = UserDefaults.standard
  32. if expand {
  33. userDefaults.setValue("true", forKey: String("\(fileType)-expand"))
  34. }else {
  35. userDefaults.setValue(nil, forKey: String("\(fileType)-expand"))
  36. }
  37. userDefaults.synchronize()
  38. }
  39. public func isExpand(_ fileType:String) -> Bool {
  40. let userDefaults = UserDefaults.standard
  41. return userDefaults.value(forKey: String("\(fileType)-expand")) != nil
  42. }
  43. public func originFilesFor(_ fileType:String, type:String) -> [String] {
  44. var path = self.directoryPath() as NSString
  45. path = path.appendingPathComponent(fileType) as NSString
  46. path = path.appendingPathComponent(type) as NSString
  47. path = path.appendingPathComponent(kOriginPathComponent) as NSString
  48. if !FileManager.default.fileExists(atPath: path as String) {
  49. return []
  50. }
  51. let items = try? FileManager.default.contentsOfDirectory(atPath: path as String)
  52. let subPaths = NSMutableArray(array: items ?? [])
  53. subPaths.remove(".DS_Store")
  54. return subPaths as! [String]
  55. }
  56. public func generaNewReportID() -> String {
  57. let string = NSString.init(format: "%.0f", NSDate.now.timeIntervalSince1970) as String
  58. let userDefaults = UserDefaults.standard
  59. userDefaults.set(string, forKey: kLatestReportIDKey)
  60. userDefaults.synchronize()
  61. return string
  62. }
  63. public func latestReportID() -> String? {
  64. let userDefaults = UserDefaults.standard
  65. return userDefaults.value(forKey: kLatestReportIDKey) as? String
  66. }
  67. /// Save Data
  68. }