File.Open(String,FileMode,FileAccess)是一个内置的File类方法,该方法用于以指定的方式在指定的路径上打开FileStream,并且不共享访问。
句法:
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access);
参数:此函数接受三个参数,如下所示:
- 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..
例外情况:
- ArgumentException:指定的路径是长度为零的字符串,仅包含空格,或者由InvalidPathChars.In定义的一个或多个无效字符。OR访问指定为Read,指定模式为Create,CreateNew,Truncate或Append。
- ArgumentNullException:路径为null。
- PathTooLongException:指定的路径,文件名或两者都超过系统定义的最大长度。
- DirectoryNotFoundException:指定的路径无效。
- IOException:打开文件时发生I / O错误。
- UnauthorizedAccessException:该路径指定了一个只读文件,并且访问权限不是Read。或路径指定目录。或呼叫者没有所需的权限。或模式为“创建”且指定的文件为隐藏文件。
- ArgumentOutOfRangeException:模式或访问指定了无效的值。
- FileNotFoundException:找不到在路径中指定的文件。
- NotSupportedException:路径格式无效。
返回值:返回非共享FileStream,该FileStream提供对具有指定模式和访问权限的指定文件的访问。
下面是说明File.Open(String,FileMode,FileAccess)方法的程序。
程序1:下面的代码创建一个临时文件,向其中写入一些指定的内容,打开该文件并打印其内容。
CSharp
// C# program to illustrate the usage
// of File.Open(String, FileMode,
// FileAccess) 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))
{
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) 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))
{
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) 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))
{
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