• 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         }


  • 相关阅读:
    伐木工和森林的故事(一)
    EclipsePDT PHP的开发环境配置
    奇怪的using
    [团队开发]SERVER2008下无法安装VS2008 SP1 和 TFS2008 SP1补丁
    写在七夕
    一点点的松懈,就可以毁掉自己!
    2008,到今天我不后悔
    细节决定成败,注意的事情需要做到,而不是听完了当耳边风
    正视差距,展望2008!
    ZendStudio5.5调式环境配置
  • 原文地址:https://www.cnblogs.com/fanjianzhi/p/12866915.html
Copyright © 2020-2023  润新知