📌  相关文章
📜  C#中带有示例的File.Open(String,FileMode,FileAccess)方法

📅  最后修改于: 2021-05-29 17:51:38             🧑  作者: Mango

File.Open(String,FileMode,FileAccess)是一个内置的File类方法,该方法用于以指定的方式在指定的路径上打开FileStream,并且不共享访问。
句法:

参数:此函数接受三个参数,如下所示:

例外情况:

  • 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

下面的代码将打开文件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