zoukankan      html  css  js  c++  java
  • Windowsforms 中对文件操作

    文件及文件夹操作:

    引用命名空间:using system .IO;

         1、File类:

    • 创建:File.Create(路径);——返回FileStream

            FileStream fs = File.Create(路径);——创建完后需关闭

            fs.close();

    • 删除:File.Delete(路径);——无返回值
    • 复制文件:File.Copy(源文件,目标文件);
    • 剪切文件:File.Move(源文件路径,目标路径); 
    • 判断文件是否存在:File.Exists(路径);——返回布尔型,true代表已存在
    • 文件加密:File.Encrypt();解密:File.Decrypt();
    • 获取创建时间:File.GetCreationTime(路径);——返回DateTime类型
    • 修改创建时间:File.SetCreationTime(路径,DateTime类型);
    • 最后访问时间:File.GetLastAccessTime(路径);——返回DateTime类型
    • 修改访问时间:File.SetLastAccessTime(路径,DateTime类型);
    • 最后修改时间:File.GetLastWriteTime(路径);——返回DateTime类型
    • 修改修改时间:File.SetLastWriteTime(路径,DateTime类型);

         2、Directory 类,目录(文件夹) 

    • 创建目录:Directory .CreateDirectory(路径);
    • 删除目录:Directory .Delete(路径);
    • 判断目录是否存在:Directory .Exists(路径);
    • 获取创建时间:Directory .GetCreationTime(路径);——返回DateTime类型
    • 修改创建时间:Directory .SetCreationTime(路径,DateTime类型);
    • 最后访问时间:Directory .GetLastAccessTime(路径);——返回DateTime类型
    • 修改访问时间:Directory .SetLastAccessTime(路径,DateTime类型);
    • 最后修改时间:Directory .GetLastWriteTime(路径);——返回DateTime类型
    • 修改修改时间:Directory .SetLastWriteTime(路径,DateTime类型);
    • 获取子目录:Directory .GetDirectories(路径); ——返回string数组
    • 获取子文件名:Directory .GetFiles(路径);——返回string数组,string[] s = Directory .GetFiles(路径);
    • 获取根目录:Directory .GetDirectoryRoot(路径); 
    • 获取上一级目录:Directory .GetParent(路径); 

         3、FileInfo 类——是实例方法,需要造对象new出来才能用

    • 创建文件:FileInfo f = new FileInfo(路径); FileStream s = f.Create();  s.Close();
    • 删除文件:FileInfo f = new FileInfo(路径);  f.Delete();  
    • 复制文件:FileInfo f = new FileInfo(路径);  f.CopyTo(目标路径,是否覆盖(true是覆盖));
    • 移动文件:FileInfo f = new FileInfo(路径);  f.MoveTo(目标路径);
    • 文件是否存在:FileInfo f = new FileInfo(路径); bool b = f.Exists;布尔型,是个属性
    • 获取文件名:FileInfo f = new FileInfo(路径);string s = f.FullName;属性,带路径的文件名
    • 获得创建时间:DateTime d = f.CreationTime,三个时间都一样,都是属性
    • 设置创建时间:f.CreationTime = DateTime.Now.AddDays(100); 三个都一样
    • 获取文件大小:f.Length

        4、DirectoryInfo 类

    • 创建目录:DirectoryInfo d = new DirectoryInfo(路径); d.Create();
    • 删除目录:d.Delete();
    • 移动目录:d.MoveTo(目标路径);
    • 目录是否存在:bool b = d.Exists;
    • 获得目录全名:d.FullName;
    • 获得子文件对象信息: FileInfo[] f = d.GetFiles(); ——返回的是文件对象数组,内容更详细

            若只获取某种类型的文件,则可在括号内后缀改为类型 例:只获取exe的文件  d.GetFiles("*.exe")

    • 获得子目录:DirectoryInfo[] dr = d.GetDirectories();

    -------------------------------------------------------------------------------------------------------------

    文件类型操作例题:

    1.给一个文件夹,获取该文件夹下所有文件的数量

    private int fcount = 0;
    private int FileCount(string path)
    {
        //造文件夹信息对象
        DirectoryInfo dwjj = new DirectoryInfo(path);
    
        //取当前文件夹下文件数量
        fcount += dwjj.GetFiles().Length;
    
        //取当前目录下所有文件夹
        foreach (DirectoryInfo d in dwjj.GetDirectories())
        {
              FileCount(d.FullName);
        }
          return fcount;   
    }

    2.给一个文件夹,获取该文件下所有的文件夹数量

    private int dcount = 0;
    private int DirCount(string path)
    {
        //造一个文件夹信息对象
          DirectoryInfo d = new DirectoryInfo(path);
    
        //取该目录下所有文件夹
        DirectoryInfo[] df = d.GetDirectories();
    
        //累加文件夹数量
        dcount += df.Length;
    
        //遍历所有文件夹
        foreach (DirectoryInfo w in df)
       {
             DirCount(w.FullName);
        }
    
         return dcount;
    }

    3.给一个文件夹,获取该文件夹大小

    private long size = 0;
    private long DirSize(string path)
    {
        //造一目录信息对象
        DirectoryInfo d = new DirectoryInfo(path);
        //取当前目录下所有文件
        foreach (FileInfo data in d.GetFiles())
        {
           size += data.Length;
        }
        //取当前目录下所有文件夹
        foreach (DirectoryInfo data in d.GetDirectories())
        {
           DirSize(data.FullName);
        }
    
        return size;
    }

    4.给一个文件夹,删除该文件夹

    private void DeleteDir(string path)
    {
       //造目录信息对象
       DirectoryInfo d = new DirectoryInfo(path);
       //取该目录下所有文件,删除
       foreach (FileInfo data in d.GetFiles())
       {
         data.Delete();
       }
       //删除子文件夹
       foreach (DirectoryInfo data in d.GetDirectories())
       {
         DeleteDir(data.FullName);
       }
       //删除空的文件夹
         d.Delete();
    }
  • 相关阅读:
    【LeetCode】17. Letter Combinations of a Phone Number
    【LeetCode】16. 3Sum Closest
    【LeetCode】15. 3Sum 三个数和为0
    【LeetCode】14. Longest Common Prefix 最长前缀子串
    【LeetCode】13. Roman to Integer 罗马数字转整数
    【LeetCode】12. Integer to Roman 整型数转罗马数
    【LeetCode】11. Container With Most Water
    【LeetCode】10. Regular Expression Matching
    Models of good programmer
    RSA Algorithm
  • 原文地址:https://www.cnblogs.com/dreamer666/p/5837937.html
Copyright © 2011-2022 走看看