zoukankan      html  css  js  c++  java
  • 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         }


  • 相关阅读:
    Samba 4.0 RC3 发布
    SymmetricDS 3.1.7 发布,数据同步和复制
    Express.js 3.0 发布,Node.js 的高性能封装
    GIFLIB 5.0.1 发布,C语言的GIF处理库
    jQuery UI 1.9.1 发布
    SVN Access Manager 0.5.5.14 发布 SVN 管理工具
    DynamicReports 3.0.3 发布 Java 报表工具
    HttpComponents HttpClient 4.2.2 GA 发布
    AppCan 2.0 正式发布,推移动应用云服务
    Ruby 2.0 的新功能已经冻结
  • 原文地址:https://www.cnblogs.com/fanjianzhi/p/12866915.html
Copyright © 2011-2022 走看看