我正在尝试在iPad或临时目录的文档目录中创建一个简单的CVS文件。此代码如下:
let fileName = "test.csv"
_ = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName)
然后我尝试使用github中的CSV.swift库修改文件,如下所示:
let stream = OutputStream(toFileAtPath: "test.csv", append: false)!
let csv = try! CSVWriter(stream: stream) // Error at this line
try! csv.write(row: headerarray)
try! csv.write(row: dataarray)
csv.stream.close()
出于某种原因,我收到错误CSV.CSVError.cannotOpenFile: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-802.0.53/src/swift/stdlib/public/core/ErrorType.swift
看起来我没有正确创建.csv文件。
答案 0 :(得分:2)
您正在丢弃第二行中临时目录的路径。那是你的问题。因此,您不是在临时目录中添加fileName
,而是尝试将其添加到硬盘的根目录中。我怀疑你有权限,因此无法创建该文件。尝试建立完整的路径名,就像我在下面函数的第一行中所做的那样。
这是一个使用流将字符串写入临时目录中的文件的函数。
func streamTextToFile(_ text: String) {
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("test.csv")
guard let stream = OutputStream(toFileAtPath: url.path, append: false) else { return }
let data = [UInt8](text.utf8)
stream.open()
stream.write(data, maxLength: data.count)
stream.close()
}