2017-07-06 12 views
1

iPadまたは一時ディレクトリのドキュメントディレクトリに簡単なCVSファイルを作成しようとしています。次のようにこのコードは次のとおりです。CSV.CSVError.cannotOpenFile: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-802.0.53/src/swift/stdlib/public/core/ErrorType.swiftCSVファイルを開くことができません

を言って、私はエラーを取得していますいくつかの理由

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() 

:私は、このようにgithubのからCSV.swiftライブラリを使用してファイルを変更しようとしています

let fileName = "test.csv" 

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

.csvファイルを正しく作成しているように見えません。

答えて

1

2行目の一時ディレクトリへのパスを捨てています。それがあなたの問題です。そのため、テンポラリディレクトリ内にfileNameを追加する代わりに、ハードディスクのルートに追加しようとしています。私はあなたがこれに対するパーミッションを持っていると疑うので、ファイルを作成できません。以下の関数の最初の行にあるように、完全なパス名を構築してみてください。

ストリームを使用してTemporary Directory内のファイルにStringを書き込む関数です。

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

関連する問題