This documentation is archived and is not being maintained.

FileInfo.Exists Property

Gets a value indicating whether a file exists.

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

public override bool Exists { get; }
/** @property */
public boolean get_Exists ()

public override function get Exists () : boolean

Property Value

true if the file exists; false if the file does not exist or if the file is a directory.

The following table lists examples of other typical or related I/O tasks.

To do this...

See the example in this topic...

Create a text file.

How to: Write Text to a File

Write to a text file.

How to: Write Text to a File

Read from a text file.

How to: Read Text from a File

Append text to a file.

How to: Open and Append to a Log File



Copy a file.



Rename or move a file.



Get the size of a file.


Read from a binary file.

How to: Read and Write to a Newly Created Data File

Write to a binary file.

How to: Read and Write to a Newly Created Data File

Create a subdirectory.


See the files in a directory.


Sort files in a directory by size.


Set file attributes.


The following code example uses the Exists property ensure a file exists before opening it. You can use this technique to throw a custom exception when the file is not found.

public byte[] OpenDataFile(string FileName)
    // Check the FileName argument.
    if (FileName == null || FileName.Length == 0)
        throw new ArgumentNullException("FileName");

    // Check to see if the file exists.
    FileInfo fInfo = new FileInfo(FileName);
    // You can throw a personalized exception if 
    // the file does not exist.
    if (!fInfo.Exists)
        throw new FileNotFoundException("The file was not found.", FileName);

    // Open the file.
    FileStream fStream = new FileStream(FileName, FileMode.Open);

    // Create a buffer.
    byte [] buffer = new byte[fStream.Length];

    // Read the file contents to the buffer.
    fStream.Read(buffer, 0, (int)fStream.Length);

    // return the buffer.
    return buffer;


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0