プロが教える店舗&オフィスのセキュリティ対策術

C#のプログラムで
データをCSVファイルに蓄積するプログラムを作っています。

やり方としては最初にCSVファイルを指定し
ボタンを押すたびに、データを追加するように作りました。
以下抜粋

//CSVファイル指定
csvfile = new System.IO.StreamWriter(csvPath, true, encording);



//データの書き込み
csvfile.Write(data);
csvfile.Write(",");



//CSVファイルクローズ
csvfile.Close();

このプログラムを動作させた所
「csvfile.Close();」の時点で、実際にcsvにデータが書き込まれました。
データの書き込みのたびにCSVファイルが更新されるのが理想なのですが、
その方法としては逐一クローズするしか方法はないのでしょうか?

何らかの方法で逐一更新出来たり、
もしくは異なるCSVへの書き込み方法があれば、教えていただけないでしょうか?

A 回答 (2件)

http://msdn.microsoft.com/ja-jp/library/system.i …

できるのはこれくらい。
StreamWriter調べればわかったことだと思うけど。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます

この動作が求めていたものです。

自分でも、調べていたつもりだったのですが
スルーしていたようです。

ありがとうございました

お礼日時:2013/07/24 13:18

ストリームをバッファリング無しにしても、OSレベルでバッファリングが行われるので、一番確実なのは



>その方法としては逐一クローズするしか方法はない

でしょうね。

それに、ファイルを開きっ放しの場合、排他制御により他の人はアクセス出来ませんから逐次更新しても無駄です。誰かが更新された内容にアクセスしようとしてもオープン出来ません。

なので「逐次更新した更新結果を、他の人にアクセスさせたい」のであれば「毎回、書き込んですぐにクローズする」しかありません。
    • good
    • 0
この回答へのお礼

私の説明不足でした。
逐一更新したい理由として
アクセスするのではなく、該当ファイルをクローズしていない途中段階でコピーしたかったのです
そのため、クローズしていなくてもデータ自体は更新されている状態にしておきたかった、ということです。


しかし、アクセスするにはやはり閉じるしか手段が無いということは
確証が持てていなかったためchie65535さんの情報もありがたかったです。

ご回答いただきありがとうございました。

お礼日時:2013/07/24 13:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!