(1)通过FileInfo和DirectoryInfo来读取文件和文件夹属性

查看文件属性,创建文件,移动文件,重命名文件

判断路径和文件夹是否存在,创建文件

(2)通过File读写文件:

(3)使用流来读写文件

FileStream, StreamReader:读取文件流 

StreamWriter:写入文件流


头文件

using System.IO; 

创建文件:文件要放入相对路径

导入文件:FileInfo file = new FileInfo("Info.txt");   相对路径:设置文件属性Copy To OutPut 为Copy Always

绝对路径:将文件的根目录放进来


文件的一些属性:

FileName.Exists   //判断文件是否存在返回True和False

FileName.Name   //返回文件名+后缀

FIleName.DIrectory //获取文件所在路径

FileName.IsReadOnly //判断是否仅仅可读

FileName.Delete() //删除文件


//如果当前文件不存在 则创建文件

if(file.Exists == false)

  {
     file.Create();
  }

//文件复制

file.CopyTo("tt.txt");


文件夹操作:

DirectoryInfo dirInfo = new DirectoryInfo(@文件目录);

dirInfo.Exists   目录是否存在

dirInfo.Name 文件名

dirInfo.Parent 父文件夹

dirInfo.Root  根目录

dirInfo.CreationTime  创建时间

dirInfo.CreateSubdirectory(文件夹名)   在文件夹中创建文件


使用FIleStream读写非文本文件: 二进制形式

FIleStream Stream = new FileStream(文件名, 文件打开类型)

byte[] data = new byte[Stream.Length];    //用来存储文件流

文件以二进制形式进行读取

Stream.Read(data, 0,data.Length);   读取的内容 偏移量 内容长度

文件会多次读取

所以要加上循环

while (true)
             {
                 int length = Stream.Read(data, 0,data.Length);
                 if(length == 0)
                 {
                     Console.WriteLine("读取完毕...");
                     break;
                 }
                 for(int i =0; i<length; ++i)
                 {
                     Console.WriteLine(data[i] + "");    //显示文件内容
                 }
             }

文件的写入:

FileStream pngStream = new FileStream(读取的文件, FileMode.Open);
byte[] pngData = new byte[pngStream.Length];=
 FileStream newPngStream = new FileStream(要写入的文件名, FileMode.Create);  //要写入的文件

同理:

while (true)
             {
                 int length = Stream.Read(pngData, 0, pngData.Length);
                 if(length == 0)
                 {
                     Console.WriteLine("写入完毕...");
                     break;
                 }
                 else
                 {
                     newPngStream.Write(data, 0, length);
                 }
             }

读取和写入完毕后记得关闭句柄

Stream.Close


用stremReader读取指定行数:

FileStream file = new FileStream("CCSS.txt", FileMode.Open,FileAccess.Read);
             StreamReader reader = new StreamReader(file);
             //读取文件
             string str;
             int i = 0;
             while ((str = reader.ReadLine())!=null)
             {
                 i++;
                 if (i <= 9)    //读取前9行
                 {
                     Console.WriteLine(str);
                 }
             }