当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# File.Open(String, FileMode, FileAccess)用法及代码示例


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 所定义。OR 访问指定的读取和模式指定的 Create、CreateNew、Truncate 或 Append。
  • ArgumentNullException:路径为空。
  • PathTooLongException:指定的路径,文件名或两者都超过了system-defined的最大长度。
  • DirectoryNotFoundException:指定的路径无效。
  • IOException:打开文件时发生I /O错误。
  • UnauthorizedAccessException:路径指定了一个只读文件,访问权限不是 Read。或者路径指定了一个目录。或者调用者没有所需的权限。 OR 模式为创建且指定文件为隐藏文件。
  • ArgumentOutOfRangeException:模式或访问指定了无效值。
  • FileNotFoundException:找不到路径中指定的文件。
  • NotSupportedException:路径格式无效。

返回值:返回一个非共享的 FileStream,它提供对指定文件的访问,具有指定的模式和访问权限。
下面是说明 File.Open(String, FileMode, FileAccess) 方法的程序。
程序1:下面的代码创建一个临时文件,将一些指定的内容写入其中,打开该文件并打印其内容。

C#


// 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));
            }
        }
    }
}

输出:

GFG is a CS Portal.

程序2:最初,创建了一个文件 file.txt,其中的一些内容如下所示-

file.txt

下面的代码将打开文件 file.txt 并打印其内容。

C#


// 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

相关用法


注:本文由纯净天空筛选整理自Kanchan_Ray大神的英文原创作品 File.Open(String, FileMode, FileAccess) Method in C# with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。