前提・実現したいこと
C#初心者です。今朝から始めたところです。
csvファイルの保存について勉強中です。
サンプルコードからの書き換えを行っていて、詰まってしまいました。
StreamWriterで追記・上書きのパラメータを持たせた形にしたいのですが、
単純にtrueを追加したところ、エラーになってしまいました。(試したこと)
保存先(fsの位置)にフルパスをいれると、プログラムの実行はできますが
以下の様なエラーが発生してしまいます。
どうすればよろしいでしょうか?
ご教示願います。
発生している問題・エラーメッセージ
System.IO.IOException: '別のプロセスで使用されているため、プロセスはファイル 'C:\Users\○○○\Desktop\myCSVFile.csv' にアクセスできません。'
=>テキストエディタなどは併用していません。
「該当のソースコード」は正常に動きますが、「試したこと」でエラーになります。
System.UnauthorizedAccessException: 'パス 'C:\test.csv' へのアクセスが拒否されました。'
=>保存先を変更することで解決しました
該当のソースコード
C#
1 const string OUTPUT_FILE_NAME = "myCSVFile.csv"; 2 3 FileInfo myCSVFile = new FileInfo(OUTPUT_FILE_NAME); 4 5 using (FileStream fs = myCSVFile.OpenWrite()) 6 { 7 using (StreamWriter sw = new StreamWriter(fs, Encoding.Unicode)) 8 { 9 sw.WriteLine(getCSVElement("作品名") + getCSVElement("作者")); 10 } 11 } 12 13 private static string getCSVElement(string element) 14 { 15 return element + ","; 16 }
試したこと
C#
1 const string OUTPUT_FILE_NAME = "myCSVFile.csv"; 2 3 FileInfo myCSVFile = new FileInfo(OUTPUT_FILE_NAME); 4 5 using (FileStream fs = myCSVFile.OpenWrite()) 6 { 7 using (var sw = new StreamWriter(fs, true, Encoding.GetEncoding("Unicode"))) 8 { 9 sw.WriteLine(getCSVElement("作品名") + getCSVElement("作者")); 10 } 11 } 12 13 private static string getCSVElement(string element) 14 { 15 return element + ","; 16 }
補足情報(FW/ツールのバージョンなど)
VisualStudio2017 で作成・実行
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/29 15:49