【问题标题】:How to enable the user to customize the file name when saving?如何让用户在保存时自定义文件名?
【发布时间】:2019-04-29 13:36:10
【问题描述】:

我有一个可以在 csv 文件中导出用户输入信息的应用程序。我在代码中将文件名设置为 PatientInfo。但是,当我收到新数据并再次单击保存时。旧的将被覆盖。如何自动创建一个名为 PatientInfo_01 的新 csv 文件?或者更好的是,让用户在点击保存按钮后输入文件名。

这是我的原始代码:

var patientsData:[Dictionary<String, AnyObject>] = Array()
var dct = Dictionary<String, AnyObject>()
func createCSVX(from recArray:[Dictionary<String, AnyObject>]) {
var csvString = "\("Time"),\("Force")\n"
dct.updateValue(-TestDraw.time as AnyObject, forKey: "T")
for i in 0...TestDraw.force.count-1 {
    dct.updateValue(TestDraw.force[i] as AnyObject, forKey: "F")
    patientsData.append(dct)
    csvString = csvString.appending("\(String(describing: dct["T"]!)), \(String(describing: dct["F"]!))\n")
}
let fileManager = FileManager.default
do {
    let path = try fileManager.url(for: .documentDirectory, in: .allDomainsMask, appropriateFor: nil, create: false)
    let fileURL = path.appendingPathComponent("PatientInfo.csv")
    try csvString.write(to: fileURL, atomically: true, encoding: .utf8)
} catch {
    print("error creating file")
  }
}

【问题讨论】:

    标签: ios swift save filenames


    【解决方案1】:

    试试这个:

    var counter = 0
    
    let path = try fileManager.url(for: .documentDirectory, in: .allDomainsMask, appropriateFor: nil, create: false)
    let fileName = String(format:"PatientInfo%d.csv",counter)   
    let fileURL = path.appendingPathComponent(fileName)
    try csvString.write(to: fileURL, atomically: true, encoding: .utf8)
    

    并且在下一次迭代中,将计数器值增加 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-01
      • 1970-01-01
      相关资源
      最近更新 更多