.NET Framework Class Library
FileShare Enumeration

Contains constants for controlling the kind of access other FileStream objects can have to the same file.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

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

Visual Basic (Declaration)
<SerializableAttribute> _
<FlagsAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration FileShare
Visual Basic (Usage)
Dim instance As FileShare
C#
[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum FileShare
Visual C++
[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum class FileShare
JScript
public enum FileShare
Members

Member nameDescription
Supported by the .NET Compact FrameworkSupported by the XNA FrameworkNoneDeclines sharing of the current file. Any request to open the file (by this process or another process) will fail until the file is closed.
Supported by the .NET Compact FrameworkSupported by the XNA FrameworkReadAllows subsequent opening of the file for reading. If this flag is not specified, any request to open the file for reading (by this process or another process) will fail until the file is closed. However, even if this flag is specified, additional permissions might still be needed to access the file.
Supported by the .NET Compact FrameworkSupported by the XNA FrameworkWriteAllows subsequent opening of the file for writing. If this flag is not specified, any request to open the file for writing (by this process or another process) will fail until the file is closed. However, even if this flag is specified, additional permissions might still be needed to access the file.
Supported by the .NET Compact FrameworkSupported by the XNA FrameworkReadWriteAllows subsequent opening of the file for reading or writing. If this flag is not specified, any request to open the file for reading or writing (by this process or another process) will fail until the file is closed. However, even if this flag is specified, additional permissions might still be needed to access the file.
DeleteAllows subsequent deleting of a file.
InheritableMakes the file handle inheritable by child processes. This is not directly supported by Win32.
Remarks

For an example of creating a file and writing text to a file, see How to: Write Text to a File. For an example of reading text from a file, see How to: Read Text from a File. For an example of reading from and writing to a binary file, see How to: Read and Write to a Newly Created Data File.

A typical use of this enumeration is to define whether two processes can simultaneously read from the same file. For example, if a file is opened and Read is specified, other users can open the file for reading but not for writing.

A FileShare parameter is specified in some of the constructors for FileStream, IsolatedStorageFileStream, and in some of the Open methods of File and FileInfo to control how a file is opened.

Examples

The following FileStream constructor opens an existing file and grants read-only access to other users (Read).

Visual Basic
Dim s2 As New FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read)
C#
FileStream s2 = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);
Visual C++
FileStream^ s2 = gcnew FileStream( name, FileMode::Open, FileAccess::Read, FileShare::Read );
JScript
var s2 : FileStream = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);
Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
See Also

Reference

Other Resources

Tags :


Community Content

Garapa1
What is not said about 'subsequent' opening
It is is important to note that if you are Open() ing a file and passing this flag, this flag is checked against
current handles that have the file in question open.

If you specify .Read, and the file is open elsewhere (system wide) for writing, your Open()
will fail. So, if you need to open a file for reading while others have it open for writing, this flag
must be .ReadWrite.

Thst flag does not <just> impact subsequent openers, but will change behavior of callers of Open(),
based upon how others have opened the file.

CSE
Tags :

Page view tracker