2017-07-06 72 views
1

我想在iPad或臨時目錄的文檔目錄中創建一個簡單的CVS文件。此代碼如下:無法打開CSV文件Swift

let fileName = "test.csv" 

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

我再試圖修改使用CSV.swift庫從GitHub這樣的文件:

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文件。

回答

1

您正在拋棄第二行中臨時目錄的路徑。那是你的問題。因此,不是在臨時目錄中添加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() 
} 

這是一些示例輸出。 enter image description here