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

📅  最后修改于: 2023-12-03 15:14:30.684000             🧑  作者: Mango

C#中带有示例的File.Open(String,FileMode,FileAccess,FileShare)方法

简介

File.Open(String,FileMode,FileAccess,FileShare)方法是一个用于打开或创建文件并返回FileStream对象的方法,其提供了对文件的访问和操作能力。通过指定文件的路径、打开方式、访问权限以及分享模式来实现对文件的访问和操作。

参数

该方法的参数有四个:

  1. String path:文件路径和名称
  2. FileMode mode:文件打开模式
  3. FileAccess access:文件访问权限
  4. FileShare share:文件分享模式
FileMode枚举

FileMode是一个枚举类型,它用于指定打开文件时所采用的文件访问模式。它的值包括:

  • Append:以追加方式打开文件。如果文件不存在,就创建一个新文件。
  • Create:如果文件不存在,就创建一个新文件;如果文件已存在,就截断文件并写入新文件内容。
  • CreateNew:创建一个新文件。如果文件已存在,创建操作将引发异常。
  • Open:打开现有文件。如果文件不存在,就引发异常。
  • OpenOrCreate:打开现有文件或创建一个新文件,具体是哪一种操作取决于文件是否存在。
  • Truncate:打开已有文件并截断其内容为0字节。如果文件不存在,就引发异常。
FileAccess枚举

FileAccess是一个枚举类型,它用于指定文件的访问权限。它的值包括:

  • Read:从文件中读取数据。
  • Write:向文件中写入数据。
  • ReadWrite:允许读取并写入文件。
FileShare枚举

FileShare是一个枚举类型,它用于指定文件的分享模式。它的值包括:

  • None:禁止其他进程共享该文件。
  • Read:允许其他进程读取该文件。
  • Write:允许其他进程在该文件中写入数据。
  • ReadWrite:允许其他进程读取并写入该文件。
示例

下面是一个使用File.Open(String,FileMode,FileAccess,FileShare)方法的示例:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string path = @"C:\test.txt";

        // 以只读方式打开文件
        using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
        {
            // 读取文件内容
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);
            while (fs.Read(b, 0, b.Length) > 0)
            {
                Console.WriteLine(temp.GetString(b));
            }
        }

        // 等待用户输入
        Console.ReadKey();
    }
}

在上面的示例中,我们通过File.Open方法以只读方式打开一个名为test.txt的文件,同时设置了FileShare.ReadWrite分享模式。然后,我们读取文件内容,并输出到控制台上。

总结

File.Open(String,FileMode,FileAccess,FileShare)方法可以方便地对文件进行访问和操作。通过对它的调用,我们可以指定文件的路径、打开方式、访问权限以及分享模式等属性,来实现对文件的读取、写入等操作。