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

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

File.Open(String,FileMode)是一个内置的File类方法,该方法用于在具有共享访问权限的指定路径上打开具有读/写访问权限的FileStream。
句法:

public static System.IO.FileStream Open (string path, System.IO.FileMode mode);

参数:该函数接受两个参数,如下所示:

例外情况:

  • ArgumentException:路径是长度为零的字符串,仅包含空格,或者由InvalidPathChars定义的一个或多个无效字符。
  • ArgumentNullException:路径为null。
  • PathTooLongException:给定的路径文件名或两者都超过了系统定义的最大长度。
  • DirectoryNotFoundException:指定的路径无效。
  • IOException:打开文件时发生I / O错误。
  • UnauthorizedAccessException:路径指定了一个只读文件。或当前平台不支持此操作。或路径指定目录。或呼叫者没有所需的权限。或者模式为创建且指定的文件为隐藏文件。
  • ArgumentOutOfRangeException:模式指定了无效的值。
  • FileNotFoundException:找不到在路径中指定的文件。
  • NotSupportedException:路径格式无效。

返回值:返回以指定模式和路径打开的FileStream,具有读取/写入访问权限并且不共享。
下面是说明File.Open(String,FileMode)方法的程序。
程序1:下面的代码创建一个临时文件,向其中写入一些指定的内容,然后打开文件并打印。

CSharp
// C# program to illustrate the usage
// of File.Open(String, FileMode) 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))
        {
            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) 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))
        {
            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) 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))
        {
            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