zl程序教程

您现在的位置是:首页 >  后端

当前栏目

c#文件操作示例带详细注释

c#文件 操作 详细 示例 注释
2023-06-13 09:15:15 时间

复制代码代码如下:


usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.IO;

namespaceExample
{

   classProgram
   {

       staticvoidMain(string[]args)
       {
           ////////////////  文件打开 下面的代码打开D:\wang.txt文件,并且向文件中写入"hello"
           FileStreamtextFile=File.Open(@"D:\wang.txt",FileMode.Append);//以Append方式打开文件(如果不存在,会创建)
           byte[]info={(byte)"h",(byte)"e",(byte)"l",(byte)"l",(byte)"o"};//要写入的信息
           textFile.Write(info,0,info.Length);//Write方法只能写入byte数组                       
           textFile.Close();//关闭文件流
          

           //////////////////////文件创建   
           FileStreamnewText=File.Create(@"D:\newText.txt");//创建文件
           newText.Close();//关闭文件

           //////////////////// 删除文件
           File.Delete(@"d:\newText.txt");

           ////////////////// 文件复制  如果目标文件存在,不允许复制(就是不能覆盖同名文件)
           //File.Copy(@"d:\wang.txt",@"d:\CopyWang.txt");


           //////////////// 文件移动 只能在同一个盘中移动 如果目标路径不正确,不能移动
          //File.Move(@"d:\CopyWang.txt",@"D:\A\movewang.txt");

           //////////////////////// 设置文件属性为只读,隐藏
           //File.SetAttributes(@"D:\copywang.txt",FileAttributes.ReadOnly|FileAttributes.Hidden);//同时满足多个属性,必须用位或(|).

           /////////////// 判断文件是不是存在
           if(File.Exists(@"D:\copywang.txt"))//如果存在 即便是隐藏的文件也可以找到
           {
               File.SetAttributes(@"D:\copywang.txt",FileAttributes.ReadOnly);//重新设置属性后,隐藏的文件也会显示出来,只要不加Hidden属性
               Console.WriteLine("找到文件copywang.txt");
           }
           else
           {
               Console.WriteLine("没有找到文件CopyWang.txt");
           }
           /*
           此外,File类对于Text文本提供了更多的支持。
         ?AppendText:将文本追加到现有文件
         ?CreateText:为写入文本创建或打开新文件
         ?OpenText:打开现有文本文件以进行读取
         但上述方法主要对UTF-8的编码文本进行操作,从而显得不够灵活。在这里推荐读者使用下面的代码对txt文件进行操作。
         ?对txt文件进行“读”操作,示例代码如下:  
            */
           StreamReadertextReader=newStreamReader(@"D:\wang.txt",System.Text.Encoding.Default);//以默认编码方式打开文件
           stringstr=textReader.ReadToEnd();//读取文件
           Console.WriteLine("使用StreamReader读取文本内容:"+str);
           textReader.Close();

           //////////////////对txt文件写内容
           StreamWritertextWriter=newStreamWriter(@"D:\wang.txt");
           str="Learn.Net";
           textWriter.Write(str);
           textWriter.Close();

           /*
           System.IO.Directory类和System.DirectoryInfo类
          主要提供关于目录的各种操作,使用时需要引用System.IO命名空间。下面通过程序实例来介绍其主要属性和方法。
           */
           Directory.CreateDirectory(@"D:\wang1\wang");//创建目录(文件夹)如果已经存在,则保持;还可以一次创建多级目录

           /////////////////////////////////目录属性设置方法
           DirectoryInfodirInfo=newDirectoryInfo(@"D:\wang1\wang");//
           dirInfo.Attributes=FileAttributes.Hidden;//|FileAttributes.ReadOnly;//设置文件夹属性

           /////////////////Delete方法的第二个参数为bool类型,它可以决定是否删除非空目录。
           //如果该参数值为true,将删除整个目录,即使该目录下有文件或子目录;若为false,则仅当目录为空时才可删除。
           //Directory.Delete(@"D:\wang1",true);//如果文件设置为ReadOnly,则不能删除

           //Directory.Move(@"d:\wang1",@"d:\wang3");//把文件夹wang1移动到文件夹wang3中,相当于把wang1删除,创建一个wang3,再把内容移动到wang3

           string[]Directories=Directory.GetDirectories(@"D:\wang3");//获得文件夹wang3的目录
           foreach(stringvarinDirectories)
               Console.WriteLine(var);

           string[]Files=Directory.GetFiles(@"D:\wang1");//获取文件夹wang1下面的所有文件
           foreach(stringvarinFiles)
               Console.WriteLine(var);

           if(Directory.Exists(@"D:\wang1"))
               Console.WriteLine("文件夹wang1存在");

           /*
           在C#中“\”是特殊字符,要表示它的话需要使用“\\”。由于这种写法不方便,C#语言提供了@对其简化。只要在字符串前加上@即可直接使用“\”。
               所以上面的路径在C#中应该表示为“Book”,@“\Tmp\Book”,@“C:\Tmp\Book”。
           */

           Console.ReadLine();  

       }
   }
}