文件。用 C# 创建(字符串、Int32、文件选项、文件安全性)方法,示例

原文:https://www . geesforgeks . org/file-createstring-int 32-file options-file security-method-in-c-sharp-with-examples/

文件。Create(String,Int32,FileOptions,FileSecurity) 是一个内置的 File 类方法,用于覆盖现有文件,指定缓冲区大小和描述如何创建或覆盖文件的选项,以及决定文件访问控制和审核安全性的值。如果指定的文件不存在,此函数本身会创建一个新文件。 语法:

公共静态系统。创建文件流(字符串路径,内部缓冲区,系统。文件选项选项,系统。security . access control . file security file security);

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

  • Path: This is the specified file path.
  • Buffer size: This is the specified buffer size.
  • Option: This is one of the file option values that describe how to create or overwrite files.
  • File security: This is an object that determines file access control and audit security.

例外:

  • 未授权访问异常:调用方没有所需的权限。或者路径指定了一个只读文件。或者路径指定了一个隐藏的文件。
  • ArgumentException: 路径是零长度字符串,仅包含空格,或一个或多个无效字符,如 InvalidPathChars 所定义。
  • ArgumentNullException:路径为空。
  • 路径工具异常:指定的路径、文件名或两者都超过了系统定义的最大长度。
  • DirectoryNotFoundException:指定的路径无效。
  • IOException: 创建文件时出现输入/输出错误。
  • notSupportDexception:路径的格式无效。

返回值:返回具有指定缓冲区大小、文件选项和文件安全性的新文件。 以下是说明文件的程序。创建(字符串,Int32,文件选项,文件安全性)方法。 程序 1: 最初,不创建文件。但是下面的代码本身用指定的内容创建了一个新的文件 file.txt

C

// C# program to illustrate the usage
// of File.Create(String, Int32, 
// FileOptions, FileSecurity) method

// Using System, System.IO, System.Text and
// System.Security.AccessControl namespaces
using System;
using System.IO;
using System.Text;
using System.Security.AccessControl;

class GFG {
    public static void Main()
    {
        // Specifying a file
        string myfile = @"file.txt";

        // Calling the create() function to create a
        // new file named as file.txt
        using(FileStream fs = File.Create(myfile, 1024, 
            FileOptions.RandomAccess, new FileSecurity()))
        {
            // Adding the below contents
            Byte[] info = new UTF8Encoding(true).GetBytes("GeeksforGeeks");
            fs.Write(info, 0, info.Length);
        }

        // Reading the file contents
        using(StreamReader sr = File.OpenText(myfile))
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) {
                Console.WriteLine(s);
            }
        }
    }
}

执行:

mcs -out:main.exe main.cs
mono main.exe
GeeksforGeeks

运行上述代码后,显示上述输出,并创建一个新文件 file.txt ,其指定内容如下所示:

file.txt

程序 2: 下面显示的文件 file.txt 是在运行下面的代码之前创建的。

file.txt

C

// C# program to illustrate the usage
// of File.Create(String, Int32, 
// FileOptions, FileSecurity) method

// Using System, System.IO, System.Text and
// System.Security.AccessControl namespaces
using System;
using System.IO;
using System.Text;
using System.Security.AccessControl;

class GFG {
    public static void Main()
    {
        // Specifying a file
        string myfile = @"file.txt";

        // Calling the create() function
        using(FileStream fs = File.Create(myfile, 1024,
             FileOptions.RandomAccess, new FileSecurity()))
        {
            // Overwriting the above file with
            // below contents
            Byte[] info = new UTF8Encoding(true).GetBytes("GFG is a CS Portal.");
            fs.Write(info, 0, info.Length);
        }

        // Reading the file contents
        using(StreamReader sr = File.OpenText(myfile))
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) {
                Console.WriteLine(s);
            }
        }
    }
}

执行:

mcs -out:main.exe main.cs
mono main.exe
GFG is a CS Portal.

运行上述代码后,将显示上述输出,现有文件内容将被覆盖。