System.IO.FileMode Enumeration

Specifies how the operating system should open a file.

Syntax

[System.Runtime.InteropServices.ComVisible(true)]
public enum FileMode

Remarks

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.

Members

Member NameDescription
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.

Requirements

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0