File.Open(String,FileMode,FileAccess,FileShare)是一个内置的File类方法,该方法用于在指定路径上打开FileStream,具有具有读,写或读/写访问权限的指定模式以及指定的共享选项。
句法:
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
参数:此函数接受三个参数,如下所示:
- path: This is the specified file to open.
- mode: This mode value specifies whether a new file is created if one does not exist, and also determines whether the existing file’s contents are retained or overwritten.
- access: This value specifies the operations that can be performed on the file.
- share: This value specifying the type of access other threads have to the file.
例外情况:
- ArgumentException:路径是长度为零的字符串,仅包含空格,或者由InvalidPathChars定义的一个或多个无效字符。或访问指定的读取,指定的模式创建,CreateNew,截断或追加。
- ArgumentNullException:路径为null。
- PathTooLongException:指定的路径,文件名或两者都超过系统定义的最大长度。
- DirectoryNotFoundException:指定的路径无效。
- IOException:打开文件时发生I / O错误。
- UnauthorizedAccessException:该路径指定了一个只读文件,并且访问权限不是Read。 OR路径指定了一个目录。或呼叫者没有所需的权限。 OR模式为“创建”,指定的文件为隐藏文件。
- ArgumentOutOfRangeException:模式,访问或共享指定了无效的值。
- FileNotFoundException:找不到在路径中指定的文件。
- NotSupportedException:路径格式无效。
返回值:返回具有指定模式的指定路径的FileStream,该路径具有读,写或读/写访问权限,并具有指定的共享选项,该路径位于指定的路径上。
下面是说明File.Open(String,FileMode,FileAccess,FileShare)方法的程序。
程序1:下面的代码创建一个临时文件,向其中写入一些指定的内容,打开该文件并打印其内容。这里不允许文件共享。
CSharp
// C# program to illustrate the usage
// of File.Open(String, FileMode,
// FileAccess, FileShare) method
// Using System, System.IO and
// System.Text namespaces
using System;
using System.IO;
using System.Text;
class GFG {
public static void Main()
{
// Creating a temporary file
string path = Path.GetTempFileName();
using(FileStream fs = File.Open(path, FileMode.Open))
{
// Putting some contents
Byte[] info = new UTF8Encoding(true).GetBytes("GFG is a CS Portal.");
fs.Write(info, 0, info.Length);
}
// Opening the stream and reading it back.
using(FileStream fs = File.Open(path, FileMode.Open,
FileAccess.Read, FileShare.None))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b, 0, b.Length) > 0) {
Console.WriteLine(temp.GetString(b));
}
}
}
}
CSharp
// C# program to illustrate the usage
// of File.Open(String, FileMode,
// FileAccess, FileShare) method
// Using System, System.IO and
// System.Text namespaces
using System;
using System.IO;
using System.Text;
class GFG {
public static void Main()
{
// Specifying a file path
string path = @"file.txt";
// Opening above file and reading it back.
using(FileStream fs = File.Open(path, FileMode.Open,
FileAccess.Read, FileShare.None))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b, 0, b.Length) > 0) {
// Printing the file contents
Console.WriteLine(temp.GetString(b));
}
}
}
}
执行中:
GFG is a CS Portal.
程序2:最初,创建一个文件file.txt ,其内容如下所示:
此代码将打开文件file.txt ,并打印其内容,并且不允许文件共享。
尖锐的
// C# program to illustrate the usage
// of File.Open(String, FileMode,
// FileAccess, FileShare) method
// Using System, System.IO and
// System.Text namespaces
using System;
using System.IO;
using System.Text;
class GFG {
public static void Main()
{
// Specifying a file path
string path = @"file.txt";
// Opening above file and reading it back.
using(FileStream fs = File.Open(path, FileMode.Open,
FileAccess.Read, FileShare.None))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b, 0, b.Length) > 0) {
// Printing the file contents
Console.WriteLine(temp.GetString(b));
}
}
}
}
执行中:
GeeksforGeeks