zoukankan      html  css  js  c++  java
  • C# 删除、遍历指定目录下的所有指定文件、文件夹

            /// <summary>
            /// 删除指定文件、文件夹

            /// </summary>
            /// <param name="dir">目录路径</param>
            /// <param name="delname">待删除文件或文件夹名称</param>
            public void DeleteFolder(string dir,string delname)
            {          
                if (Directory.Exists(dir))
                {
                    foreach (string d in Directory.GetFileSystemEntries(dir))
                    {
                        string tmpd = d.Substring(0, d.LastIndexOf("\\")) + "\\" + delname;
                        if (Directory.Exists(d))
                        {
                            if (d == tmpd)
                                Directory.Delete(d, true);
                            else
                                DeleteFolder(d, delname);//递归删除子文件夹  
                        }
                        else if(File.Exists(d))
                        {
                            if (d == tmpd)
                                File.Delete(d);
                        }
                    }
                }           
            }

            /// <summary>
            /// 以下为遍历文件目录文件名,并保存到数组al
            /// </summary>
            public ArrayList GetAllDirList(string strBaseDir)//strBaseDir是路径
            {

                public ArrayList al = new ArrayList();//定义存储文件和文件夹名的数组(该数组用于查找指定目录的完整目录)


                DirectoryInfo di = new DirectoryInfo(strBaseDir);
                DirectoryInfo[] diA = di.GetDirectories();
                if (aaa == 0)
                {
                    FileInfo[] fis2 = di.GetFiles();   //有关目录下的文件  
                    for (int i2 = 0; i2 < fis2.Length; i2++)
                    {
                        al.Add(fis2[i2].FullName);
                        //fis2[i2].FullName是根目录中文件的绝对地址,把它记录在ArrayList中
                    }
                }
                for (int i = 0; i < diA.Length; i++)
                {
                        aaa++;
                        //al.Add(diA[i].FullName + "\t<目录>");
                        //diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
                        DirectoryInfo di1 = new DirectoryInfo(diA[i].FullName);
                        DirectoryInfo[] diA1 = di1.GetDirectories();
                        FileInfo[] fis1 = di1.GetFiles();   //有关目录下的文件  
                        for (int ii = 0; ii < fis1.Length; ii++)
                        {
                            al.Add(fis1[ii].FullName);
                            //fis1[ii].FullName是某个子目录中文件的绝对地址,把它记录在ArrayList中 
                        }
                        GetAllDirList(diA[i].FullName);
                        //注意:递归  
                }

               return al;
            }

  • 相关阅读:
    Mybatis 的 xml 文件语法错误,启动项目时控制台一直循环解析但是不打印错误
    在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX"。现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True。
    【Important】数据库索引原理
    服务化的演变和负载均衡
    【问题集】redis.clients.jedis.exceptions.JedisDataException: ERR value is not an integer or out of range
    【Spring】Spring中用到的设计模式
    【设计模式】责任链模式
    【!Important】Zookeeper用来做什么的,有几种类型的节点
    【!Important】如何保证线程执行的先后顺序
    【!Important】Java线程死锁查看分析方法
  • 原文地址:https://www.cnblogs.com/mane/p/1866689.html
Copyright © 2011-2022 走看看