For an example of creating a file and writing text to a file, see [<topic://cpconwritingtexttofile>]. For an example of reading text from a file, see [<topic://cpconreadingtextfromfile>]. For an example of reading from and writing to a binary file, see [<topic://cpconReadingWritingToNewlyCreatedDataFile>].
A FileMode parameter is specified in many of the constructors for System.IO.FileStream, System.IO.IsolatedStorage.IsolatedStorageFileStream, and in the Open methods of System.IO.File and System.IO.FileInfo to control how a file is opened.
FileMode parameters control whether a file is overwritten, created, opened, or some combination thereof. Use Open to open an existing file. To append to a file, use Append. To truncate a file or create a file if it doesn't exist, use Create.
Member Name | Description |
---|---|
Append |
Opens the file if it exists and seeks to the end of the file, or creates a new file. This requires System.Security.Permissions.FileIOPermissionAccess.Append permission. FileMode.Append can be used only in conjunction with FileAccess.Write. Trying to seek to a position before the end of the file throws an System.IO.IOException exception, and any attempt to read fails and throws a NotSupportedException exception. |
Create |
Specifies that the operating system should create a new file. If the file already exists, it will be overwritten. This requires System.Security.Permissions.FileIOPermissionAccess.Write permission. FileMode.Create is equivalent to requesting that if the file does not exist, use FileMode.CreateNew; otherwise, use FileMode.Truncate. If the file already exists but is a hidden file, an UnauthorizedAccessException exception is thrown. |
CreateNew |
Specifies that the operating system should create a new file. This requires System.Security.Permissions.FileIOPermissionAccess.Write permission. If the file already exists, an System.IO.IOException exception is thrown. |
Open |
Specifies that the operating system should open an existing file. The ability to open the file is dependent on the value specified by the System.IO.FileAccess enumeration. A System.IO.FileNotFoundException exception is thrown if the file does not exist. |
OpenOrCreate |
Specifies that the operating system should open a file if it exists; otherwise, a new file should be created. If the file is opened with FileAccess.Read, System.Security.Permissions.FileIOPermissionAccess.Read permission is required. If the file access is FileAccess.Write, System.Security.Permissions.FileIOPermissionAccess.Write permission is required. If the file is opened with FileAccess.ReadWrite, both System.Security.Permissions.FileIOPermissionAccess.Read and System.Security.Permissions.FileIOPermissionAccess.Write permissions are required. |
Truncate |
Specifies that the operating system should open an existing file. When the file is opened, it should be truncated so that its size is zero bytes. This requires System.Security.Permissions.FileIOPermissionAccess.Write permission. Attempts to read from a file opened with FileMode.Truncate cause an ArgumentException exception. |