File Class

File Class

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Provides static methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of FileStream objects.


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

public static class File

The File type exposes the following members.

Public methodStatic memberAppendTextCreates a StreamWriter that appends UTF-8 encoded text to an existing file.
Public methodStatic memberCopy(String, String)Copies an existing file to a new file. Overwriting a file of the same name is not allowed.
Public methodStatic memberCopy(String, String, Boolean)Copies an existing file to a new file. Overwriting a file of the same name is allowed.
Public methodStatic memberCreate(String)Creates or overwrites a file in the specified path.
Public methodStatic memberCreate(String, Int32)Creates or overwrites the specified file.
Public methodStatic memberCreateTextCreates or opens a file for writing UTF-8 encoded text.
Public methodStatic memberDeleteDeletes the specified file. An exception is not thrown if the specified file does not exist.
Public methodStatic memberExistsDetermines whether the specified file exists.
Public methodStatic memberGetCreationTimeReturns the creation date and time of the specified file or directory.
Public methodStatic memberGetLastAccessTimeReturns the date and time the specified file or directory was last accessed.
Public methodStatic memberGetLastWriteTimeReturns the date and time the specified file or directory was last written to.
Public methodStatic memberMoveMoves a specified file to a new location, providing the option to specify a new file name.
Public methodStatic memberOpen(String, FileMode)Opens a FileStream on the specified path with read/write access.
Public methodStatic memberOpen(String, FileMode, FileAccess)Opens a FileStream on the specified path, with the specified mode and access.
Public methodStatic memberOpen(String, FileMode, FileAccess, FileShare)Opens a FileStream on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option.
Public methodStatic memberOpenReadOpens an existing file for reading.
Public methodStatic memberOpenTextOpens an existing UTF-8 encoded text file for reading.
Public methodStatic memberOpenWriteOpens an existing file for writing.
Public methodStatic memberSetAttributesSecurity Critical. Sets the specified FileAttributes of the file on the specified path.

Use the File class for typical operations such as copying, moving, renaming, creating, opening, deleting, and appending to files. You can also use the File class to get and set file attributes or DateTime information related to the creation, access, and writing of a file.

Many of the File methods return other I/O types when you create or open files. You can use these other types to further manipulate a file. For more information, see specific File members such as OpenText, CreateText, or Create.

Because all File methods are static, it might be more efficient to use a File method rather than a corresponding FileInfo instance method if you want to perform only one action. All File methods require the path to the file that you are manipulating.

The static methods of the File class perform security checks on all methods. If you are going to reuse an object several times, consider using the corresponding instance method of FileInfo instead, because the security check will not always be necessary.

The following table describes the enumerations that are used to customize the behavior of various File methods.




Specifies read and write access to a file.


Specifies the level of access permitted for a file that is already in use.


Specifies whether the contents of an existing file are preserved or overwritten, and whether requests to create an existing file cause an exception.


In members that accept a path as an input string, that path must be well-formed or an exception is raised. For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. Therefore, the path is malformed and an exception is raised. Similarly, a path or a combination of paths cannot be fully qualified twice. For example, "c:\temp c:\windows" also raises an exception in most cases. Ensure that your paths are well-formed when using methods that accept a path string.

Version Notes

Windows Phone

This type is present to support the .NET Compact Framework infrastructure in Windows Phone, and it is not intended to be used in your application code.

The following example uses a File to determine if a file exists in a users' My Documents folder. This code example is part of a larger example provided for the StreamReader class.

private void OpenFile_Click(object sender, RoutedEventArgs e)

	// fileLoc is a global string variable.
	fileLoc = System.IO.Path.Combine(Environment.GetFolderPath(
		Environment.SpecialFolder.MyDocuments), "MyDoc.txt");

	// Create the file if it does not exist.
	if (!File.Exists(fileLoc))
		using (StreamWriter swNew = new StreamWriter(fileLoc))
			swNew.WriteLine("Sample text");

	// Display the contents in a TextBox.
	using (StreamReader sr = new StreamReader(fileLoc))
		inputData.Text = sr.ReadToEnd();
		inputData.Visibility = Visibility.Visible;

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

© 2017 Microsoft