FileInfo::Open Method (FileMode, FileAccess, FileShare)
Opens a file in the specified mode with read, write, or read/write access and the specified sharing option.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- mode
-
Type:
System.IO::FileMode
A FileMode constant specifying the mode (for example, Open or Append) in which to open the file.
- access
-
Type:
System.IO::FileAccess
A FileAccess constant specifying whether to open the file with Read, Write, or ReadWrite file access.
- share
-
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 |
|---|---|
| SecurityException | The caller does not have the required permission. |
| FileNotFoundException | The file is not found. |
| UnauthorizedAccessException | path is read-only or is a directory. |
| DirectoryNotFoundException | The specified path is invalid, such as being on an unmapped drive. |
| IOException | 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 namespace System; using namespace System::IO; int main() { // Open an existing file, or create a new one. FileInfo^ fi = gcnew 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 = gcnew FileInfo( "temp.txt" ); try { // 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 ) { Console::WriteLine( e ); } // Close the file so it can be deleted. fs->Close(); } //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
Available since 10
.NET Framework
Available since 1.1
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0