Net文件递归查找并保存

原理:遍历当前文件夹的子文件,保存遍历文件夹下的所有文件

主要方法(2个):

  //获取文件夹下的所有文件 并保存
  string[] path = Directory.GetFiles(NeedFilePath, "*.*");
  //获取文件夹下的所有子文件
  string[] files = Directory.GetDirectories(NeedFilePath);

代码如下:

 1         /// <summary>
 2         /// 文件递归
 3         /// </summary>
 4         /// <param name="NeedFilePath">需要转化的文件路径</param>
 5         /// <param name="CopyToFilePath">指定生成的文件路径</param>
 6         protected void CreatePath(string NeedFilePath, string CopyToFilePath)
 7         {
 8             string FilePath = CopyToFilePath;
 9             if (!Directory.Exists(FilePath))
10             {
11                 Directory.CreateDirectory(FilePath);
12             }
13             //获取文件夹下的所有文件 并保存
14             string[] path = Directory.GetFiles(NeedFilePath, "*.*");
15             string newfilepath = "";
16             int Count = 0;
17             foreach (string vale in path)
18             {
19                 Count = 0;
20                 Count = vale.Split(‘\\‘).Length;
21                 newfilepath = FilePath + "\\" + vale.Split(‘\\‘)[Count - 1];
22                 FileHelper.CreateFile(newfilepath);
23                 FileHelper.FileCoppy(vale, newfilepath);
24             }
25             //获取文件夹下的所有子文件
26             string[] files = Directory.GetDirectories(NeedFilePath);
27             foreach (string vale in files)
28             {
29                 Count = vale.Split(‘\\‘).Length;
30                 //递归文件夹
31                 CreatePath(vale, CopyToFilePath + "\\" + vale.Split(‘\\‘)[Count - 1]);
32             }
33         }

FileHelper类:

  1 public static class FileHelper
  2     {
  3         /// <summary>
  4         /// 写文件
  5         /// </summary>
  6         /// <param name="fileName">文件名</param>
  7         /// <param name="content">文件内容</param>
  8         /// <param name="encoding">指定文件编码</param>
  9         public static void Write_Txt(string fileName, string content, string encoding)
 10         {
 11             if (string.IsNullOrEmpty(fileName))
 12             {
 13                 throw new ArgumentNullException(fileName);
 14             }
 15             if (string.IsNullOrEmpty(content))
 16             {
 17                 throw new ArgumentNullException(content);
 18             }
 19             if (string.IsNullOrEmpty(encoding))
 20             {
 21                 throw new ArgumentNullException(encoding);
 22             }
 23             var code = Encoding.GetEncoding(encoding);
 24             var htmlfilename = HttpContext.Current.Server.MapPath("Precious\\" + fileName  + ".txt");
 25             var str = content;
 26             var sw = StreamWriter.Null;
 27             try
 28             {
 29                 using (sw = new StreamWriter(htmlfilename, false, code))
 30                 {
 31                     sw.Write(str);
 32                     sw.Flush();
 33                 }
 34             }
 35             catch (IOException ioex)
 36             {
 37                 throw new IOException(ioex.Message);
 38             }
 39             catch (Exception ex)
 40             {
 41                 throw new Exception(ex.Message);
 42             }
 43             finally
 44             {
 45                 sw.Close();
 46             }
 47         }
 48         /// <summary>
 49         /// 读文件
 50         /// </summary>
 51         /// <param name="filename">文件路径</param>
 52         /// <param name="encoding">文件编码</param>
 53         /// <returns></returns>
 54         public static string Read_Txt(string filename, string encoding)
 55         {
 56             if (string.IsNullOrEmpty(filename))
 57             {
 58                 throw new ArgumentNullException(filename);
 59             }
 60             if (string.IsNullOrEmpty(encoding))
 61             {
 62                 throw new ArgumentNullException(encoding);
 63             }
 64             var code = Encoding.GetEncoding(encoding);
 65             var temp = HttpContext.Current.Server.MapPath("Precious\\" + filename +  ".txt");
 66             var str = string.Empty;
 67             if (!System.IO.File.Exists(temp)) return str;
 68             var sr = StreamReader.Null;
 69             try
 70             {
 71                 using (sr = new StreamReader(temp, code))
 72                 {
 73                     str = sr.ReadToEnd();
 74                 }
 75             }
 76             catch (IOException ioex)
 77             {
 78                 throw new IOException(ioex.Message);
 79             }
 80             catch (Exception ex)
 81             {
 82                 throw new Exception(ex.Message);
 83             }
 84             finally
 85             {
 86                 sr.Close();
 87             }
 88             return str;
 89         }
 90         /// <summary>
 91         /// 拷贝文件
 92         /// </summary>
 93         /// <param name="orignFile">原始文件</param>
 94         /// <param name="newFile">新文件路径</param>
 95         public static void FileCoppy(string orignFile, string newFile)
 96         {
 97             if (string.IsNullOrEmpty(orignFile))
 98             {
 99                 throw new ArgumentException(orignFile);
100             }
101             if (string.IsNullOrEmpty(newFile))
102             {
103                 throw new ArgumentException(newFile);
104             }
105             System.IO.File.Copy(orignFile, newFile, true);
106         }
107         /// <summary>
108         /// 删除文件
109         /// </summary>
110         /// <param name="path">路径</param>
111         public static void FileDel(string path)
112         {
113             if (string.IsNullOrEmpty(path))
114             {
115                 throw new ArgumentException(path);
116             }
117             System.IO.File.Delete(path);
118         }
119         /// <summary>
120         /// 移动文件
121         /// </summary>
122         /// <param name="orignFile">原始路径</param>
123         /// <param name="newFile">新路径</param>
124         public static void FileMove(string orignFile, string newFile)
125         {
126             if (string.IsNullOrEmpty(orignFile))
127             {
128                 throw new ArgumentException(orignFile);
129             }
130             if (string.IsNullOrEmpty(newFile))
131             {
132                 throw new ArgumentException(newFile);
133             }
134             System.IO.File.Move(orignFile, newFile);
135         }
136         //创建路径
137         public static void CreatePath(string FilePath)
138         {
139             if (!Directory.Exists(FilePath))
140             {
141                 Directory.CreateDirectory(FilePath);
142             }
143         }
144         //创建文件
145         public static void CreateFile(string   FilePath)
146         {
147             if (!File.Exists(FilePath))
148             {
149                 FileStream fs = File.Create(FilePath);
150                 fs.Close();
151             }
152         }
153     }

原文地址:https://www.cnblogs.com/ywkcode/p/10992148.html

时间: 2024-10-23 21:06:55

Net文件递归查找并保存的相关文章

目录下文件递归查找

python 使用yield实现目录下文件的递归查找(windows & linux通用) 转载自:https://www.cnblogs.com/weiok/p/4872119.html import os import fnmatch def iterfindfiles(path, fnexp): for root, dirs, files in os.walk(path): for filename in fnmatch.filter(files, fnexp): yield os.pat

python 递归查找jpg文件并打印

文件递归  查找出以('jpg', 'gif', 'png','JPG', 'GIF', 'PNG') 结尾的文件并打印 遇到的bug: 好几个文件夹下面的照片都是以大写格式的JPG 显示的,当时只考虑到小写, 导致其他文件以.JPG结尾的文件都打印不出来...导致问题定位了很久 遗留:压缩包的文件(rar 或zip )暂未处理 思路:文件解压 pip3 install rarfile 得将unrar.exe放在当前脚本的同一目录下 import os #import rarfile def g

[javaSE] IO流(递归查找指定文件)

递归方法,实现查找目录中以.java为后缀的文件路径,并存入文本文件中 定义一个静态方法fileToLine(),传入参数:File对象目录,List集合对象(List<File> 这样做的目的是因为这个方法会被递归,因此不能在内部创建,并且List集合是引用传递) 调用File对象的listFiles()方法,获取目录数组File[] files 循环这个数组for(File file : files),循环中 判断是否是目录file.isDirectory为真,进行递归fileToLine

文件的查找与压缩归档

文件的查找与压缩归档 locate find 压缩与归档 locate 主要用途 查询系统上预建的文件索引数据库 locate - find files by namelocate [OPTION]... PATTERN... locate查询文件时,会去搜索/var/lib/mlocate/mlocage.db, 这个数据库会在系统空闲时自动周期性进行,一般一天一次更新,手动更新命令为updatedb, 索引的构建需要遍历整个根文件系统,比较消耗资源.但locate有如下特性: 1. 模糊查找

(转) C语言头文件、库文件的查找路径

在程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有        些公    用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使        用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include   

Shell实例----------从文件夹里面多个文件里面查找指定内容

脚本执行方式:脚本名称  目录的路径 要查找的内容 #根据实际情况自行修改脚本,像目录里面递归查找等等#!/bin/bash num=`ls $1 |tr ' ' '^$'|wc -l` for i in `seq 1 $num` do file_name=`ls $1|tr ' ' '^$'|sed -n $i'p'` # echo $file_name # echo 查看 $1$file_name cat $1/$file_name|grep $2 2>/dev/null if [ $? -

文件的查找详细使用

文件查找:     在文件系统上查找符合条件的文件个过程:         文件查找工具:         locate:非实时查找(依赖于事先构建的索引查找,索引是在系统较为空闲的时候自动更新的(周期性任务):用户可以手动更新此索引(updatedb))         优点:查找速度快消耗资源少:模糊查找:只要包含条件也可寻得         缺点:最新的文件无法查找,实时性不高                         find:实时查找(通过遍历指定路径)         优点:精

文件的查找

在Linux这个一切皆文件的系统中怎么能快速和精确的查找到文件,是我们必不可少的技能.而文件查找的命令可以让我们在很短的时间内在文件系统中找到我们要查找的文件.这就是我们要掌握的,因此我来介绍一下文件查找的这两个命令locate和find. 文件查找:在文件系统上查找符合条件的文件: 文件查找:locate, find 非实时查找( 数据库查找) :locate 实时查找:find locate命令 查询系统上预建的文件索引数据库 :/var/lib/mlocate/mlocate.db 依赖于

有关文件夹与文件的查找,删除等功能 在 os 模块中实现

最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模块, 导入的方法是: import os 一.取得当前目录 s = os.getcwd() # s 中保存的是当前目录(即文件夹) 比如运行abc.py,那么输入该命令就会返回abc所在的文件夹位置. 举个简单例子,我们将abc.py放入A文件夹.并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A