• C#的File 类使用说明


    一:File 类简单说明

    1)提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建 FileStream 对象。
    2) 使用 File 类来获取和设置文件特性或 DateTime 与文件的创建、访问和写入相关的信息。 如果要对多个文件执行操作,请参阅 Directory.GetFiles 或 DirectoryInfo.GetFiles 。

    二:File 类的枚举

    枚举枚举说明
    FileAccess指定对文件的读取和写入访问权限。
    FileShare指定已在使用的文件所允许的访问级别。
    FileMode指定是保留还是覆盖现有文件的内容,以及创建现有文件的请求是否会引发异常。

    三:File 类的方法

    1: File.AppendAllText的方法介绍

    1)作用:将指定的字符串,追加到文件中,如果文件还不存在,则创建该文件。
    2)语法:

    public static void AppendAllText (string path, string contents);
    public static void AppendAllText (string path, string contents, System.Text.Encoding encoding);
    
    重载重载说明
    AppendAllText(String, String)打开一个文件,向其中追加指定的字符串,然后关闭该文件。
    如果文件不存在,此方法将创建一个文件,将指定的字符串写入文件,然后关闭该文件。
    AppendAllText(String, String, Encoding)使用指定的编码将指定的字符串追加到文件中,如果文件还不存在则创建该文件。

    3)使用举例:

    string path = @"H:\Tempfile\MyTest.txt";
    // 此文本仅一次添加到文件中.
    if (!File.Exists(path))
    {
        // 创建要写入的文件.
        string createText = "Hello and Welcome" + Environment.NewLine;
        File.WriteAllText(path, createText);
    }
    
    // 始终添加此文本,使文件随着时间的推移变得更长
    string appendText = "This is extra text: There is no end to learning" + Environment.NewLine;
    File.AppendAllText(path, appendText);
    
    // 打开要从中读取的文件
    string readText = File.ReadAllText(path);
    Console.WriteLine(readText);
    
    

    4)运行结果:

    Hello and Welcome
    This is extra text: There is no end to learning

    2: File.AppendText(String)的方法介绍

    1)作用:创建一个 StreamWriter,它将 UTF-8 编码文本追加到现有文件或新文件(如果指定文件不存在)
    2)语法:

    public static System.IO.StreamWriter AppendText (string path);
    

    3)使用举例:

    // 此文本仅一次添加到文件中
    if (!File.Exists(path))
    {
        //  创建要写入的文件.
        using (StreamWriter sw = File.CreateText(path))
        {
            sw.WriteLine("Freedom And justice");
            sw.WriteLine("GUNDAM 00");
            sw.WriteLine("Zero project");
        }
    }
    
    // 始终添加此文本,使文件随着时间的推移变得更长
    using (StreamWriter sw = File.AppendText(path))
    {
        sw.WriteLine("This is Extra");
        sw.WriteLine("Keep it simple.");
        sw.WriteLine("Beautiful Zhuhai");
    }
    
    // 打开要从中读取的文件。
    using (StreamReader sr = File.OpenText(path))
    {
        string s = "";
        while ((s = sr.ReadLine()) != null)
        {
            Console.WriteLine(s);
        }
    }
    

    4)运行结果:

    Freedom And justice
    GUNDAM 00
    Zero project
    This is Extra
    Keep it simple.
    Beautiful Zhuhai

    3: File.Create的方法介绍

    1)作用:在指定路径中,创建或覆盖文件。
    2)语法:

    public static System.IO.FileStream Create (string path);
    public static System.IO.FileStream Create (string path, int bufferSize);
    public static System.IO.FileStream Create (string path, int bufferSize, System.IO.FileOptions options);
    public static System.IO.FileStream Create (string path, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);
    
    重载重载说明
    Create(String)在指定路径中创建或覆盖文件。
    Create(String, Int32)在指定路径中创建或覆盖文件,指定缓冲区大小。
    Create(String, Int32, FileOptions)创建或覆盖指定路径中的文件,指定缓冲区大小和一个描述如何创建或覆盖该文件的选项。
    Create(String, Int32, FileOptions, FileSecurity)创建或覆盖指定路径中的文件,指定缓冲区大小、描述如何创建或覆盖该文件的选项,以及用于确定文件的访问控制和审核安全的值
    例外情况例外情况说明
    UnauthorizedAccessException调用方没有所要求的权限(只读文件 / 隐藏文件)。
    ArgumentNullExceptionpath 为 null。
    PathTooLongException指定的路径和/或文件名超过了系统定义的最大长度。
    DirectoryNotFoundException指定的路径无效(例如,它位于未映射的驱动器上)。
    IOException创建文件时发生 I/O 错误。
    NotSupportedExceptionpath 的格式无效。
    FileOptionsFileOptions 说明
    Asynchronous1073741824 指示文件可用于异步读取和写入。
    DeleteOnClose67108864 指示当不再使用某个文件时,自动删除该文件。
    Encrypted16384 指示文件是加密的,只能通过用于加密的同一用户帐户来解密。
    None0 指示在生成 FileStream 对象时,不应使用其他选项。
    RandomAccess268435456 指示随机访问文件。 系统可将此选项用作优化文件缓存的提示。
    SequentialScan134217728 指示按从头到尾的顺序访问文件。 系统可将此选项用作优化文件缓存的提示。 如果应用程序移动用于随机访问的文件指针,可能不发生优化缓存,但仍然保证操作的正确性。 如果指定此标志,可提升某些案例中的性能。
    WriteThrough-2147483648 指示系统应通过任何中间缓存、直接写入磁盘。

    3.1:Create(String) 使用举例:

    string path = @"H:\Tempfile\MyTest.txt";
    
    try
    {
        //  创建文件,如果文件存在,则覆盖该文件.
        using (FileStream fs = File.Create(path))
        {
            byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            // 向文件中添加一些信息。
            fs.Write(info, 0, info.Length);
        }
        // 打开stream,然后再读一遍
        using (StreamReader sr = File.OpenText(path))
        {
            string s = "";
            while ((s = sr.ReadLine()) != null)
            {
                Console.WriteLine(s);
            }
        }
    }
    
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
    

    运行结果:

    This is some text in the file.

    3.2:Create(String, Int32) 使用举例:

    //file类的学习与使用
    string path = @"H:\bilibi_Temp\MyTest.txt";
    
    // 创建文件,如果文件存在,则覆盖该文件.
    using (FileStream fs = File.Create(path, 1024))
    {
        byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
        // 向文件中添加一些信息.
        fs.Write(info, 0, info.Length);
    }
    
    // 打开Stream,然后读取一遍
    using (StreamReader sr = File.OpenText(path))
    {
        string s = "";
        while ((s = sr.ReadLine()) != null)
        {
            Console.WriteLine(s);
        }
    }
    

    运行结果:

    This is some text in the file.

    3.3:Create(String, Int32, FileOptions) 使用举例:

    string path = @"H:\Tempfile\MyTest.txt";
    
    try
    {
        //  创建文件,如果文件存在,则覆盖该文件.
        using (FileStream fs = File.Create(path))
        {
            byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            // 向文件中添加一些信息。
            fs.Write(info, 0, info.Length);
        }
        // 打开stream,然后再读一遍
        using (StreamReader sr = File.OpenText(path))
        {
            string s = "";
            while ((s = sr.ReadLine()) != null)
            {
                Console.WriteLine(s);
            }
        }
    }
    
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
    

    运行结果:

    This is some text in the file.

    4: File.CreateText(String)的方法介绍

    1)作用:创建或打开用于写入 UTF-8 编码文本的文件。 如果该文件已存在,将覆盖其内容。
    2)语法:

    public static System.IO.StreamWriter CreateText (string path);
    

    3)使用举例:

    //file类的学习与使用
    string path = @"H:\bilibi_Temp\MyTest.txt";
    
    // 创建文件,写入信息.
    using (StreamWriter sw = File.CreateText(path))
    {
        sw.WriteLine("This is New file");
        sw.WriteLine("Keep it simple.");
        sw.WriteLine("Beautiful Zhuhai");
    }
    
    // 打开Stream,然后读取一遍
    using (StreamReader sr = File.OpenText(path))
    {
        string s = "";
        while ((s = sr.ReadLine()) != null)
        {
            Console.WriteLine(s);
        }
    }
    

    5: File.Delete(String) 的方法介绍

    1)作用:删除指定的文件。
    2)语法:

    public static void Delete (string path);
    

    3)使用举例:

    //file类的学习与使用
    string path = @"H:\bilibi_Temp\MyTest.txt";
    File.Delete(path );//删除一个文件
    Console.WriteLine("删除成功");
    

    6: File.Exists(String) 的方法介绍

    1)作用:确定指定的文件是否存在。
    2)语法:

    public static bool Exists (string path);
    

    7: File.Open 的方法介绍

    1)作用:打开指定路径上的 FileStream。
    2)语法:

    public static System.IO.FileStream Open (string path, System.IO.FileMode mode);
    public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access);
    public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
    
    重载重载说明
    Open(String, FileMode)通过不共享的读/写访问权限打开指定路径上的 FileStream。
    Open(String, FileMode, FileAccess)通过指定的模式和不共享的访问权限打开指定路径上的 FileStream。
    Open(String, FileMode, FileAccess, FileShare)打开指定路径上的 FileStream,具有带读、写或读/写访问的指定模式和指定的共享选项。

    8: File.OpenRead(String) 的方法介绍

    1)作用:打开现有文件以进行读取。
    2)语法:返回FileStream是指定路径上的只读 FileStream。

    public static System.IO.FileStream OpenRead (string path);
    

    9: File.OpenText(String) 的方法介绍

    1)作用:打开现有 UTF-8 编码文本的文件,以进行读取。
    2)语法:返回StreamReader是指定路径上的 StreamReader。

    public static System.IO.StreamReader OpenText (string path);
    

    10:File.OpenWrite(String) 的方法介绍

    1)作用:打开一个现有文件或创建一个新文件以进行写入。
    2)语法:返回FileStream是指定路径上具有 FileStream 访问权限的非共享的 Write 对象。

    public static System.IO.FileStream OpenWrite (string path);
    

    11:File.ReadAllBytes(String) 的方法介绍

    1)作用:打开一个二进制文件,将文件的内容读入一个字节数组,然后关闭该文件。
    2)语法:返回Byte[] 是包含文件内容的字节数组。

    public static byte[] ReadAllBytes (string path);
    

    12:File.ReadAllLines的方法介绍

    1)作用:打开一个文本文件,将文件的所有行读入一个字符串数组,然后关闭该文件。
    2)语法:返回string[]是包含文件内容的字符串数组。

    public static string[] ReadAllLines (string path);
    public static string[] ReadAllLines (string path, System.Text.Encoding encoding);
    
    重载重载说明
    ReadAllLines(String)打开一个文本文件,读取文件的所有行,然后关闭该文件。
    ReadAllLines(String, Encoding)打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。

    13:File.ReadAllText的方法介绍

    1)作用:打开一个文本文件,将文件中的所有文本读取到一个字符串中,然后关闭此文件。
    2)语法:返回string 是包含文件内容的字符串。

    public static string ReadAllText (string path, System.Text.Encoding encoding);
    public static string ReadAllText (string path);
    
    重载重载说明
    ReadAllText(String, Encoding)打开一个文件,使用指定的编码读取文件中的所有文本,然后关闭此文件。
    ReadAllText(String)打开一个文本文件,读取文件中的所有文本,然后关闭此文件。

    14:File.Replace的方法介绍

    1)作用:使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。
    2)语法:

    public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName);
    public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);
    
    重载重载说明
    Replace(String, String, String)使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。
    Replace(String, String, String, Boolean)用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份,还可以忽略合并错误。

    15:File.WriteAllBytes(String, Byte[]) 的方法介绍

    1)作用:创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。 如果目标文件已存在,则覆盖该文件。
    2)语法:

    public static void WriteAllBytes (string path, byte[] bytes);
    

    3)使用举例:

    string Strr = "C#高级教程的学习";
    string path = @"H:\bilibi_Temp\MyTest.txt";
    
    //将字符串转成字节数组
    byte[] buffer_A = Encoding.Default.GetBytes(Strr);
    
    File.WriteAllBytes(path, buffer_A);
    Console.WriteLine("写入成功");
    

    16:File.WriteAllLines的方法介绍

    1)作用:创建一个新文件,在其中写入一个或多个字符串,然后关闭该文件。
    2)语法:

    public static void WriteAllLines (string path, string[] contents, System.Text.Encoding encoding);
    public static void WriteAllLines (string path, string[] contents);
    
    重载重载说明
    WriteAllLines(String, String[], Encoding)创建一个新文件,使用指定编码在其中写入指定的字符串数组,然后关闭该文件。
    WriteAllLines(String, String[])创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。

    17:File.WriteAllText 的方法介绍

    1)作用:创建一个新文件,向其中写入内容,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
    2)语法:

    public static void WriteAllText (string path, string contents);
    public static void WriteAllText (string path, string contents, System.Text.Encoding encoding);
    
    重载重载说明
    WriteAllText(String, String)创建一个新文件,向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
    WriteAllText(String, String, Encoding)创建一个新文件,使用指定编码向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
    string path = @"H:\bilibi_Temp\MyTest.txt";
    if (!File.Exists(path))
    {
        string createText = "Freedom and justice" + Environment.NewLine;
        File.WriteAllText(path, createText);
    }
    
    string appendText = "Freedom and justice" + Environment.NewLine;
    File.AppendAllText(path, appendText);
    
    //使用指定编码方式,打开要从中读取的文件.
    string readText = File.ReadAllText(path,Encoding.Default);
    Console.WriteLine(readText);
    

    18:File.Copy 的方法介绍

    1)作用:将现有文件复制到新文件。
    2)语法:

    public static void Copy (string sourceFileName, string destFileName);
    public static void Copy (string sourceFileName, string destFileName, bool overwrite);
    
    重载重载说明
    Copy(String, String)将现有文件复制到新文件。 不允许覆盖同名的文件。
    Copy(String, String, Boolean)将现有文件复制到新文件。 允许覆盖同名的文件。

    3)使用举例:

    string path_A = @"H:\bilibi_Temp\MyTest.txt";
    string path_B = @"H:\cilici_Temp\MyTest.txt";
    File.Copy (path_A ,path_B);//复制文件
    Console.WriteLine("复制成功");
    
  • 相关阅读:
    稀疏表存储和查询
    含文档+PPT+源码等]精品基于Uniapp+SSM实现的移动端的家庭客栈管理系统实现的App[包运行成功]
    Junit+Mockito 快速测试你的程序
    网络安全学习--网络安全防护
    Android setTheme设置透明主题无效
    用友2023届秋招Java笔试-S2卷-编程题详解
    C语言:生成校验码
    C#利用Refit实现JWT自动续期
    多年前使用一个裸机的fat32开源文件系统znFAT
    vb.net 实时监控双门双向门禁控制板源代码
  • 原文地址:https://blog.csdn.net/u010033786/article/details/127001785