首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法打开CSV文件Swift

无法打开CSV文件Swift
EN

Stack Overflow用户
提问于 2017-07-06 09:57:10
回答 1查看 799关注 0票数 1

我正尝试在iPad或temp目录的文档目录中创建一个简单的CVS文件。代码如下:

代码语言:javascript
运行
复制
 let fileName = "test.csv"

        _ = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName)

然后,我尝试使用github中的CSV.swift库修改该文件,如下所示:

代码语言:javascript
运行
复制
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文件。

EN

Stack Overflow用户

回答已采纳

发布于 2017-07-06 12:29:50

您将丢弃第二行中临时目录的路径。这就是你的问题。因此,您尝试将其添加到硬盘的根目录中,而不是将fileName添加到临时目录中。我怀疑您对此有权限,因此无法创建该文件。尝试构建完整的路径名,就像我在下面函数的第一行中所做的那样。

下面是一个使用streams将字符串写入临时目录中的文件的函数。

代码语言:javascript
运行
复制
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()
}

以下是一些示例输出。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44938618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档