ios - 如何让用户在保存时自定义文件名?

标签 ios swift save filenames

我有一个应用程序,可以将用户输入信息导出到 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")
  }
}

最佳答案

试试这个:

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。

关于ios - 如何让用户在保存时自定义文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55904557/

相关文章:

ios - 更改 NSAttributedString 文本颜色而无需再次设置标题

ios - 使用hpple从html中获取表格数据

matlab - 保存 Matlab 图而不绘制它?

android - 将 Logcat 从 Android 应用程序保存到 txt 文件

ios - NSManagedObjectModel mergedModelFromBundles错误

ios - 为什么 Date 在 swift 4 中使用正确的格式时会返回 nil?

ios - 当 UIWebView 完成加载时,如何强制重新布局 UITableViewCell?

ios - 将 Objective-C 委托(delegate)方法与 swift 文件混合

ios - 如何从 iOS 自动填充密码中保存/检索密码?

r - 小的 ggplot 对象 (1 mb) 保存后变成 7 GB 的 .Rdata 对象