C#などで使う、System.IO.FileStream.
こいつのオプションの組み合わせでいつも頭を抱えていたのでメモ
FileMode vs FileAccess
o : Success
x : ArgumentException
IO : IOException
File doesn’t exist
FileMode \ FileAccess | Read | Write | ReadWrite |
CreateNew | x | o | o |
Create | x | o | o |
Open | IO | IO | IO |
OpenOrCreate | o | o | o |
Truncate | x | IO | IO |
Append | x | o | x |
File already exist
FileMode \ FileAccess | Read | Write | ReadWrite |
CreateNew | x | IO | IO |
Create | x | o | o |
Open | o | o | o |
OpenOrCreate | o | o | o |
Truncate | x | o | o |
Append | x | o | o |
If file is already opened by FileMode
Already opened by FileMode | Needs to specify to open FileShare |
Read | Read or Write |
Write | Write or ReadWrite |
ReadWrite | Read or Write or ReadWrite |
If file is already opended by FileShare
Already opened by FileShare | Needs to specify to open FileMode |
None | Cannot open |
Read | Read |
Write | Write |
ReadWrite | Read or Write or ReadWrite |
関連