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:\1\1.txt")); 8 //FileInfo类 9 FileInfo fi = new FileInfo(@"D:\1\1.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 }