FileInfo.Open Method (FileMode, FileAccess, FileShare)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Opens a file in the specified mode with read, write, or read/write access and the specified sharing option.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public FileStream Open(
	FileMode mode,
	FileAccess access,
	FileShare share


Type: System.IO.FileMode

A FileMode constant specifying the mode (for example, Open or Append) in which to open the file.

Type: System.IO.FileAccess

A FileAccess constant specifying whether to open the file with Read, Write, or ReadWrite file access.

Type: System.IO.FileShare

A FileShare constant specifying the type of access other FileStream objects have to this file.

Return Value

Type: System.IO.FileStream

A FileStream object opened with the specified mode, access, and sharing options.

Exception Condition

The caller does not have the required permission.


The file is not found.


path is read-only or is a directory.


The specified path is invalid, such as being on an unmapped drive.


The file is already open.

The following example demonstrates opening a file for reading and writing, but disallowing access to other users or processes.

using System;
using System.IO;

public class OpenTest 
    public static void Main() 
        // Open an existing file, or create a new one.
        FileInfo fi = new FileInfo("temp.txt");

        // Open the file just specified such that no one else can use it.
        FileStream fs = fi.Open( FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None );

        // Create another reference to the same file.
        FileInfo nextfi = new FileInfo("temp.txt");        

            // Try opening the same file, which was locked by the previous process.
            nextfi.Open( FileMode.OpenOrCreate, FileAccess.Read );

            Console.WriteLine("The file was not locked, and was opened by a second process.");
        catch (IOException) 
            Console.WriteLine("The file could not be opened because it was locked by another process.");
        catch (Exception e) 

        // Close the file so it can be deleted.

//This code produces output similar to the following; 
//results may vary based on the computer/file structure/etc.:
//The file could not be opened because it was locked by another process.


for writing to and reading from files. Associated enumerations: FileIOPermissionAccess.Write and FileIOPermissionAccess.Read

Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top