teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

質問内容の見落としを受けた回答の修正

2018/04/29 07:48

投稿

ko-ito
ko-ito

スコア54

answer CHANGED
@@ -1,12 +1,35 @@
1
+ すいません、下記の文章を見落としていました。
2
+ ```
3
+ 保存先(fsの位置)にフルパスをいれると、プログラムの実行はできますが
4
+ 以下の様なエラーが発生してしまいます。
5
+ ```
1
- ソースコードをコピーしてみて気づたのですが、
6
+ すでに解決済になっていすが、
2
- 「試したと」コードはコンパイル出来せん
7
+ 後からこの質問を見た方のため、原因を書いておき
3
8
 
9
+ StreamWriterにstring(ファイルパス)を渡した場合、
10
+ 指定されたファイルを書き込み用に開いてから書き込みを行います。
11
+ この場合、OpenWriteメソッドでファイルオープンした後、
12
+ StreamWriterで同じファイルをオープンしようとしているのでエラーになります。
13
+
14
+ StreamWriterにパスを渡す場合、ファイルを開く処理も行ってくれるので、
4
- もしかしたら
15
+ FileStreamを使用する必要はなく
5
16
  ```C#
17
+ const string OUTPUT_FILE_NAME = "myCSVFile.csv";
18
+ FileInfo myCSVFile = new FileInfo(OUTPUT_FILE_NAME);
19
+ using (FileStream fs = myCSVFile.OpenWrite())
20
+ {
6
- using (var sw = new StreamWriter(fs, true, Encoding.GetEncoding("Unicode")))
21
+ using (var sw = new StreamWriter(OUTPUT_FILE_NAME, true, Encoding.GetEncoding("Unicode")))
22
+ {
23
+ sw.WriteLine(getCSVElement("作品名") + getCSVElement("作者"));
24
+ }
25
+ }
7
26
  ```
8
- ではなく、
27
+ ↓↓↓
9
28
  ```C#
29
+ const string OUTPUT_FILE_NAME = "myCSVFile.csv";
10
30
  using (var sw = new StreamWriter(OUTPUT_FILE_NAME, true, Encoding.GetEncoding("Unicode")))
31
+ {
32
+ sw.WriteLine(getCSVElement("作品名") + getCSVElement("作者"));
33
+ }
11
34
  ```
12
- このようになっていませんか
35
+ このように書き換えると正常に動作するようにると思いま