c# .net获取文件夹下的所有文件(多层递归),并获取区间数据(Jsion,xml等数据)写出到处理文件,学习分享~
static void Main(string[] args)
{
string path = string.Format(@"C:\Users\Administrator\Desktop\{0}", @"shenzheng");//根目录
List<string> filePaths = GetAllDirectories(path);//返回根目录下所有文件(包括路径)的集合
foreach (var item in filePaths)
{
StreamReader read = new StreamReader(item, Encoding.UTF8);//根据文件路径获取文件流
string fileName = Path.GetFileNameWithoutExtension(item);//文件名
string filePath = Path.GetDirectoryName(item);//文件所在文件夹
if (!read.EndOfStream)//是否读取完成
{
string aline = read.ReadToEnd();//读取全部------//string aline = read.ReadLine();读取一行
Console.WriteLine(read.ReadLine());
string keyStar = "***";//关键字开始
string ketEnd = "&&&";//关键字结束//获取之间的字符串
int star = aline.IndexOf(keyStar) + keyStar.Length;//加上keyStar所占的位数
int end = aline.IndexOf(ketEnd);
if (star > 0 && end > star)//未找到关键字
{
string newstr = aline.Substring(star, end - star);
Console.WriteLine(newstr);//打印到控制台,查看是否截取想要的信息
Console.WriteLine(fileName + "打印完毕");
//char[] dd = new char[] { ']', ',' };
string[] strs = newstr.Split(new string[] { "分割字符串" }, StringSplitOptions.RemoveEmptyEntries);//根据规则分割你想要的字符串获得字符串集合
StreamWriter sw = new StreamWriter(@"C:\Users\Administrator\Desktop\out\" + fileName + "处理.txt", false);//输出目录及文件名称定义
for (int i = 0; i < strs.Count(); i++)
{
Console.WriteLine(strs[i] + "," + (i + 1).ToString());//打印到控制台
sw.WriteLine(strs[i] + "," + (i + 1).ToString());//写到文件
sw.Flush();//清空StreamWriter缓存,否则会写不全
Thread.Sleep(20);
}
Console.WriteLine(fileName + "写入完毕");
Console.ReadKey();
}
else
{
Console.WriteLine("当前文档" + fileName + "没有符合规则的数据,跳过!");
}
}
}
static List<string> filesList = new List<string>();
public static List<string> GetAllDirectories(string rootPath)
{
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;
}
}
c# .net获取文件夹下的所有文件(多层递归),并获取区间数据(Jsion,xml等数据)写出到处理文件,学习分享~的更多相关文章
- [C#]获取指定文件夹下的所有文件名(递归)
典型的递归方法: //定义一个list集合 List<String> list = new List<String>(); public void director(strin ...
- Android 使用存放在存assets文件夹下的SQLite数据库
因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机 ...
- 42、使用存放在存assets文件夹下的SQLite数据库
因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机 ...
- matlab操作之--读取指定文件夹下的“指定格式”文件
%% 正负样本所在folder fext='*.png';%要读取的文件格式 positiveFolder='F:\课题\Crater detection\machingLearning\Positi ...
- 脚本工具(获取某个文件夹下的所有图片属性批量生成css样式)
问题描述: 由于有一次工作原因,就是将某个文件夹下的所有图片,通过CSS描述他们的属性,用的时候就可以直接引用.但是我觉得那个文件夹下的图片太多,而且CSS文件的格式又有一定的规律,所有想通过脚本来生 ...
- cocos2d-x3.2下获取文件夹下所有文件名的方法
这里提供一个函数获取文件夹下所有文件名的方法,直接上代码了. 原文地址:http://blog.csdn.net/qqmcy/article/details/36184733 // // Visib ...
- C#获取文件夹下指定格式的所有文件
C#获取文件夹下指定格式的所有文件的方法,虽然很简单,但还是分享一下吧,用到时可以稍加修改和优化就可以使用. 获取指定目录下所有文件 //最要使用 System.IO.Directory.GetFil ...
- PHP遍历文件夹下的文件和获取到input name的值
<?php$dir = dirname(__FILE__); //要遍历的目录名字 ->当前文件所在的文件夹//$dir='D:\PHP\wamp\www\admin\hosts\admi ...
- 转载: C++ 获取文件夹下的所有文件名
最近需要得到某个文件夹下所有文件名,于是就上网上查了查,得到如下的解决方案最多: 而且查到的最早的版本是这个:http://blog.csdn.net/cxf7394373/article/detai ...
- C++ 获取文件夹下的所有文件名
获取文件夹下所有的文件名是常用的功能,今天再一次有这样的需求,所有就在网上查找了很多,并记下以供后用. 原文:http://blog.csdn.NET/cxf7394373/article/detai ...
随机推荐
- ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'
凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...
- mariadb数据库忘记密码如何找回
1.systemctl stop mariadb ==>停止mariadb数据库 2.mysqld_safe --skip-grant-tables & ==>进入单机模式 3.m ...
- 将自己的项目上传到github保管
一.首先需要生成gey-gen,因为github跟本地计算机要通过ssh传输的,详情见官方教程. 二.本地已有项目的情况:现在本地将项目git innit 初始化好,然后去到github上面初始化一个 ...
- [笔记]linux用户与用户组
sudo useradd -m john 自动建立主目录 sudo passwd john sudo useradd -g groupusers mike sudo useradd -s /bin/b ...
- [python]python try异常处理机制
#python的try语句有两种风格 #一:种是处理异常(try/except/else) #二:种是无论是否发生异常都将执行最后的代码(try/finally) try/except/else风格 ...
- 【Swift】Alamofile网络请求数据更新TableView的坑
写这篇BLOG前,有些话不得不提一下,就仅当发发恼骚吧... 今天下午为了一个Alamofire取得数据而更新TableView的问题,查了一下午的百度(360也是见鬼的一样),竟然没有一个简单明了的 ...
- [转]Web APi之认证(Authentication)及授权(Authorization)【一】(十二)
本文转自:http://www.cnblogs.com/CreateMyself/p/4856133.html 前言 无论是ASP.NET MVC还是Web API框架,在从请求到响应这一过程中对于请 ...
- ANSI Common Lisp Practice - My Answers - Chatper - 3
Ok, Go ahead. 1 (a) (b) (c) (d) 2 注:union 在 Common Lisp 中的作用就是求两个集合的并集.但是这有一个前提,即给的两个列表已经满足集合的属性了.具体 ...
- java的JSP技术
java的JSP技术 [toc] 1.JSP简介 Jsp技术是用来开发java web的页面显示的,所有MVC模型里面的视图层,所以视图层的开发 jsp不是编程语言,三个英文是java server ...
- EL表达式
跳转传到: : 相当于(接值放值): --------------------------- --------------------------------- ------------------- ...