zoukankan      html  css  js  c++  java
  • 递归遍历文件及子文件夹下的文件(该代码是复制过来修改过的,如果有侵作者权的话,请作者联系我,立即删除)

    调用: ListFiles(new DirectoryInfo(source));  
    
    /// <summary>
            /// //递归遍历所有文件包括子文件夹下的文件 并对word excel pdf文件进行复制到目标路径
            /// </summary>
            /// <param name="info"></param>
            private void ListFiles(FileSystemInfo info)
            {
                if (!info.Exists) { return; }
    
                DirectoryInfo dir = info as DirectoryInfo;
                //不是目录 
                if (dir == null) { return; }
    
    
                FileSystemInfo[] files = dir.GetFileSystemInfos();
                for (int i = 0; i < files.Length; i++)
                {
                    FileInfo file = files[i] as FileInfo;
                    //是文件 
    
                    if (file != null)
                    {
                        string[] arr = file.Name.Split(new char[] { '.' });
    
                        arr[arr.Length - 1] = arr[arr.Length - 1].ToLower();
    
                        if (arr[arr.Length - 1] == "doc" || arr[arr.Length - 1] == "docx")
                        {
    
                        
    
                            #region 每扫描到一个word文件 存储到lst里面去
    
                            FilesModelRepostory fileModel = new FilesModelRepostory();
    
                            fileModel.ID = Guid.NewGuid().ToString("N");
                            fileModel.FileName = file.Name;
                            fileModel.FileType =FileType.Word;
                            
                            AddJob(fileModel);
    
    
    
    
    
                            #endregion
    
    
                            count++;
                        }
                        if (arr[arr.Length - 1] == "xls" || arr[arr.Length - 1] == "xlsx")
                        {
                           
    
                            #region 每扫描到一个Excel文件 存储到lst里面去
    
                            FilesModelRepostory fileModel = new FilesModelRepostory();
                            fileModel.ID = Guid.NewGuid().ToString("N");
                            fileModel.FileName = file.Name;
                            fileModel.FileType = FileType.Excel;
    
                            AddJob(fileModel);
    
                            #endregion
    
                            count++;
                        }
                        if (arr[arr.Length - 1] == "pdf")
                        {
                        
    
                            #region 每扫描到一个pdf文件 存储到lst里面去
    
                            FilesModelRepostory fileModel = new FilesModelRepostory();
                            fileModel.ID = Guid.NewGuid().ToString("N");
                            fileModel.FileName = file.Name;
                            fileModel.FileType =FileType.Pdf;
    
                            AddJob(fileModel);
    
    
    
    
                            #endregion
    
                            count++;
                        }
                    }
                    //对于子目录,进行递归调用 
                    else
                    {
                        ListFiles(files[i]);
                    }
                }
    
            }
    

      

  • 相关阅读:
    数据驱动ddt简单使用
    html-testRunner在unittest测试套件中的使用
    Python设计模式----3.单例模式
    Python设计模式----2.工厂模式
    Python设计模式----1.简单工厂模式
    在小程序中对图片进行缩放时发生的问题记录
    将项目发布到Maven中央仓库的不完整纪要
    虚机的SQL Server空间占满之后进行释放的一些操作
    jdk8环境下,添加重复注解的美好体验
    使用transient关键字解决ehcache序列化错误
  • 原文地址:https://www.cnblogs.com/zjw520/p/3014670.html
Copyright © 2011-2022 走看看