FileMode, FileAccess, FileShare

C#などで使う、System.IO.FileStream.
こいつのオプションの組み合わせでいつも頭を抱えていたのでメモ

FileMode vs FileAccess

o : Success
x : ArgumentException
IO : IOException

File doesn’t exist

FileMode \ FileAccessReadWriteReadWrite
CreateNewxoo
Createxoo
OpenIOIOIO
OpenOrCreateooo
TruncatexIOIO
Appendxox

File already exist

FileMode \ FileAccessReadWriteReadWrite
CreateNewxIOIO
Createxoo
Openooo
OpenOrCreateooo
Truncatexoo
Appendxoo

If file is already opened by FileMode

Already opened by FileMode Needs to specify to open FileShare
ReadRead or Write 
WriteWrite or ReadWrite 
ReadWriteRead or Write or ReadWrite 

If file is already opended by FileShare

Already opened by FileShareNeeds to specify to open FileMode
NoneCannot open
ReadRead
WriteWrite
ReadWriteRead or Write or ReadWrite

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください