C#File类和FileInfo类

1.File类
File类支持对文件的基本操作,它包括用于创建、复制、删除、移动和打开文
的静态方法,并协助创建FileStream对象。
2.FileInfo类
FileInfo类和File类之间许多方法调用都是相同的,但是FileInfo类没有静态方
法,该类中的方法仅可以用于实例化的对象。File类是静态类,其调用需要字
符串参数为每一个方法调用规定文件位置,因此如果要在对象上进行单一方法
调用,则可以使用静态File类。在这种情况下静态调用速度要快一些,因为
.NET框架不必执行实例化对象并调用其方法。如果要在文件上执行几种操
作,则实例化FileInfo对象并调用其方法更好一些,这样会提高效率,因为对
象将在文件系统上引用正确的文件,而静态类却必须每次都必须寻找文件。
3.File和FileInfo实例比较
1.判断文件是否存在
 1     //File确定指定的文件是否存在。
 2       public static bool Exists(string path);
 3       //FileInfo获取指示文件是否存在的值。
 4       public override bool Exists { get; }
 5       
 6       //File类
 7       Console.WriteLine(File.Exists(@"D:11.txt"));
 8       //FileInfo类
 9       FileInfo fi = new FileInfo(@"D:11.txt");//创建文件对象
10      Console.WriteLine(fi.Exists);//判断文件是否存在   
2.创建文件
 1       //File 创建文件
 2         //path:文件名  bufferSize:用于读取和写入文件的已放入缓冲区的字节数
 3         //options:FileOptions值之一,用于描述如何创建或改写该文件
 4         //fileSecurity:FileSecurity值之一,用于确定文件的访问控制和审核安全性
 5         public static FileStream Create(string path);
 6         public static FileStream Create(string path, int bufferSize);
 7         public static FileStream Create(string path, int bufferSize, FileOptions options);
 8         public static FileStream Create(string path, int bufferSize, FileOptions options, FileSecurity fileSecurity);
 9         //FileInfo创建文件
10         public FileStream Create();
11         
12         //File类
13         File.Create(@"D:1.txt");
14         //FileInfo类
15          FileInfo fi = new FileInfo(@"D:2.txt");
16          fi.Create();   
3.复制文件
 1     //File类 复制文件
 2      // overwrite:如果可以覆盖目标文件,则为 true;否则为 false。
 3      public static void Copy(string sourceFileName, string destFileName);
 4      public static void Copy(string sourceFileName, string destFileName, bool overwrite);
 5      //FileInfo类 复制文件
 6      // overwrite:如果可以覆盖目标文件,则为 true;否则为 false。
 7      public FileInfo CopyTo(string destFileName);
 8      public FileInfo CopyTo(string destFileName, bool overwrite);
 9      
10     //File类
11     File.Copy(@"D:1.txt", @"D:2.txt",true);
12     //FileInfo类
13     FileInfo fi = new FileInfo(@"D:1.txt");
14     fi.CopyTo(@"D:2.txt", true);   
4.移动文件
 1     //File类 移动文件
 2     public static void Move(string sourceFileName,string destFileName)
 3     //FileInfo类 移动文件
 4     public void MoveTo(string destFileName)
 5    // 注意:使用Move/MoveTo 方法移动现有文件时,如果源文件和目标文件是同一个文件,
 6    // 将产生IOException异常
 7    
 8    //File类
 9     File.Move(@"D:1.txt", @"D:4.txt");
10     //FileInfo类
11     FileInfo fi = new FileInfo(@"D:2.txt");
12     fi.MoveTo(@"D:5.txt");    
5.删除文件
 1     //File类 删除文件
 2     public static void Delete(string path)
 3     //FileInfo类 删除文件
 4     public override void Delete()
 5    
 6    //File类
 7     File.Delete(@"D:1.txt");
 8     //FileInfo类
 9     FileInfo fi = new FileInfo(@"D:3.txt");
10     fi.Delete();    
6.练习
 
 1  //浏览事件
 2         private void btnBrowse_Click(object sender, EventArgs e)
 3         {
 4               if(openFileDialog1.ShowDialog()==DialogResult.OK)
 5             {
 6                 txtFile.Text = openFileDialog1.FileName;
 7                 FileInfo fi = new FileInfo(txtFile.Text);
 8                 //获取文件创建时间
 9                 string strCTime = fi.CreationTime.ToString();
10                 //获取上次访问该文件的时间
11                 string strLATime = fi.LastAccessTime.ToString();
12                 //获取上次写入文件的时间
13                 string strLWTime = fi.LastWriteTime.ToString();
14                 //获取文件名称
15                 string strName = fi.Name;
16                 //获取文件的完整目录
17                 string strFName = fi.FullName;
18                 //获取文件的完整路径
19                 string strDName = fi.DirectoryName;
20                 //获取文件是否只读
21                 string strIsRead = fi.IsReadOnly.ToString();
22                 //获取文件长度
23                 long fileLength = fi.Length;
24 
25                 MessageBox.Show($"文件信息" + System.Environment.NewLine + $"创建时间:{strCTime} 上次访问时间{strLATime} " + System.Environment.NewLine + $"上次写入时间{strLWTime} 文件名称:{strName}" + System.Environment.NewLine + $"完整目录:{strFName}" + System.Environment.NewLine + $"完整路径:{strDName} 是否只读:{strIsRead} 文件长度:{fileLength}");
26 
27             }
28         }


原文地址:https://www.cnblogs.com/fanjianzhi/p/12866915.html