zoukankan      html  css  js  c++  java
  • 读取文件夹列表、删除文件夹及文件夹中的内容

    最近在做文件读取的东西,长时间没有做这当面东西,感觉还是很生疏,当然百度了不少,下面是最终用到的方法,贴出来,以防止后面我忘了,给需要的人也提供一些资源吧!

    1.删除文件

     /// <summary>
            /// 删除文件
            /// </summary>
            /// <param name="path"></param>
            /// <returns></returns>
           public static bool DeleteDir(string path)
           {
               try
               {
                   DirectoryInfo dir = new DirectoryInfo(path);
                   if (dir.Exists)
                   {
                       dir.Delete(true);
                   }
                   return true;
               }
               catch (Exception)
               {
                   return false;
               }
           }
    

     2.删除文件夹

    /// <summary>
            /// 删除非空文件夹
            /// </summary>
            /// <param name="path">要删除的文件夹目录</param>
           public static bool DeleteDirectory(string path)
            {
                try
                {
                    DirectoryInfo dir = new DirectoryInfo(path);
                    if (dir.Exists)
                    {
                        DirectoryInfo[] childs = dir.GetDirectories();
                        foreach (DirectoryInfo child in childs)
                        {
                            child.Delete(true);
                        }
                        dir.Delete(true);
    
                    }
                    return true;
                }
                catch (Exception)
                {
                    return false;
                }
              
            }
    

     3.检测文件夹是否存在

     /// <summary>
            /// 检测文件是否存在
            /// </summary>
            /// <param name="dirPath">路径</param>
            /// <returns></returns>
            public static bool GetExistsDirectory(string dirPath)
            {
                bool ren = false;
                //判断该路径是否存在(是否为文件夹)
                //判断该路径是否存在(是否为文件夹)
                if (!Directory.Exists(dirPath))
                {
                    FileInfo fileInfo = new FileInfo(dirPath);
                    if (fileInfo.Exists)
                    {
                        ren = true;
                    }
                    else
                    {
                        ren = false;
                    }
                }
                else
                {
                    //定义一个DirectoryInfo对象
                    DirectoryInfo di = new DirectoryInfo(dirPath);
    
                    foreach (FileInfo fi in di.GetFiles())
                    {
                        if (fi.Exists)
                        {
                            ren = true;
                        }
                        else
                        {
                            ren = false;
                        }
                    }
                }
                return ren;
            }
    

     4.文件大小

     //所给路径中所对应的文件大小
            public static long FileSize(string filePath)
            {
                //定义一个FileInfo对象,是指与filePath所指向的文件相关联,以获取其大小
                FileInfo fileInfo = new FileInfo(filePath);
                return fileInfo.Length;
            }
    

     5.获取指定路径的大小

     /// <summary>
            /// 获取指定路径的大小
            /// </summary>
            /// <param name="dirPath">路径</param>
            /// <returns></returns>
            public static long GetDirectoryLength(string dirPath)
            {
                long len = 0;
                //判断该路径是否存在(是否为文件夹)
                if (!Directory.Exists(dirPath))
                {
                    //查询文件的大小
                    len = FileSize(dirPath);
                }
                else
                {
                    //定义一个DirectoryInfo对象
                    DirectoryInfo di = new DirectoryInfo(dirPath);
    
                    //通过GetFiles方法,获取di目录中的所有文件的大小
                    foreach (FileInfo fi in di.GetFiles())
                    {
                        len += fi.Length;
                    }
                    //获取di中所有的文件夹,并存到一个新的对象数组中,以进行递归
                    DirectoryInfo[] dis = di.GetDirectories();
                    if (dis.Length > 0)
                    {
                        for (int i = 0; i < dis.Length; i++)
                        {
                            len += GetDirectoryLength(dis[i].FullName);
                        }
                    }
                }
                return len;
            }
    

     6.获取所传路径下的所有子目录

    //获取所传路径下的所有子目录
            public static List<string> GetAllDir(string rootPath)
            {
                List<string> filesList = new List<string>();
                string[] subPaths = Directory.GetDirectories(rootPath);//得到所有子目录
    
                foreach (string path in subPaths)
                {
                 string filename=Path.GetFileName(path);
                 
                  filesList.Add(filename);//文件所在文件夹
                }
                return filesList;
            }
    

     7.获取所传路径以下的所有子目录以及子目录下面的文件

     //获取所传路径以下的所有子目录以及子目录下面的文件
            public static List<string> GetAllDirectories(string rootPath)
            {
                List<string> filesList = new List<string>();
                string[] subPaths = Directory.GetDirectories(rootPath);//得到所有子目录
    
                foreach (string path in subPaths)
                {
                    GetAllDirectories(path);//对每一个字目录做与根目录相同的操作:即找到子目录并将当前目录的文件名存入List
                }
                string[] files = Directory.GetFiles(rootPath);
                foreach (string file in files)
                {
                    filesList.Add(file);//将当前目录中的所有文件全名存入文件List
                }
                return filesList;
            }
    
  • 相关阅读:
    linux 端口被占用
    vue项目刷新当前页面
    SQL关于删除的三个语句:DROP、TRUNCATE、 DELETE 的区别
    mybatis模糊查询去除特殊符号%(百分号)和_(下划线)
    SpringMVC 五种注解参数绑定
    导出数据到Excel--多sheet
    POI 导出工具 实例
    Java 数组转换成字符串 添加逗号 类似 js array的join
    SpringBoot常用注解总结
    Java类的主动使用和被动使用-面试题
  • 原文地址:https://www.cnblogs.com/weiying/p/weiying_20171201.html
Copyright © 2011-2022 走看看