C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■83902 / 1階層)  ファイルをロックしてから上書き
□投稿者/ 魔界の仮面弁士 (1267回)-(2017/04/21(Fri) 11:20:41)
No83899 (az さん) に返信
> _FileStream = new System.IO.FileStream(
>   _FilePath,
>   System.IO.FileMode.Open,
>   System.IO.FileAccess.ReadWrite,
>   FileShare.None);

最後の引数だけ、"System.IO." が省略されているのが非対称的で気になりましたが、それはさておき。



> 以下のコードだと追記になってしまいます。

FileMode.Append + FileAccess.Write なら追記になりますが、
FileMode.Open + FileAccess.ReadWrite なら
現在の位置からの上書きになるはずなんですけれどね…。


出力を始める前に _FileStream.Position の値を
確認してみてください。上書きしたい位置ではなく、
ファイルの末尾を指していたりはしませんか?

(たとえば、StreamReader.ReadToEnd を事前に呼び出していたりすると、
 Position がファイル末尾に移動することになります)
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←ファイルをロックしてから上書き /az →Re[2]: ファイルをロックしてから上書き /az
 
上記関連ツリー

ファイルをロックしてから上書き / az (17/04/21(Fri) 10:57) #83899
Re[1]: ファイルをロックしてから上書き / Hongliang (17/04/21(Fri) 11:07) #83901
ファイルをロックしてから上書き / 魔界の仮面弁士 (17/04/21(Fri) 11:20) #83902 ←Now
  └ Re[2]: ファイルをロックしてから上書き / az (17/04/21(Fri) 13:47) #83910 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信