【C#】【IO】【实例】接上一个统计的新功能
先用Python来创建多层级文件夹:
import os root_path = r"C:\Users\Desktop\文案整理\Practice" for item in range(1, 41):
foldname = os.path.join(root_path, str(item))
os.mkdir(foldname) foldname_son1 = os.path.join(foldname, str(item) + f'.{item}')
os.mkdir(foldname_son1) for i_item in range(1, 501):
foldname_son1_son = os.path.join(foldname_son1, str(i_item) + f'..{i_item}')
os.mkdir(foldname_son1_son)
得到的树结构:
|-practice
| |- 1
| | |- 1.1
| | | |- 1..1
...
| | | |- 500..500
读取遍历所有文件并将路径保存到文本中,然后再将指定图片保存到指定文件夹中:
1 string fi = @"C:\Users\Desktop\文案整理\Practice"; // 整图文件夹
2 string SN_txt = @"C:\Users\Desktop\文案整理\SN_NaemCollection.txt"; // 所有SN的路径记录
3 string targefold = @"C:\Users\Desktop\文案整理\New"; // SN保存路径
4 string SN = "302..302"; // SN编号
5 Save_SNPath(fi, SN_txt);
6 CopySN_Picture(FindSN_Picture(SN_txt, SN), targefold);
7
8 void Save_SNPath(string fi, string SN_txt)
9 {
10 // 清空文件内容
11 File.WriteAllText(SN_txt, String.Empty);
12 foreach (var item in Directory.GetDirectories(fi))
13 foreach (var i_item in Directory.GetDirectories(item))
14 foreach (var ii_item in Directory.GetDirectories(i_item))
15 // 保存SN路径
16 using (StreamWriter write = new StreamWriter(SN_txt, true))
17 write.WriteLine(ii_item);
18 }
19
20 string FindSN_Picture(string SN_txt, string SN)
21 {
22 // 查找SN_Picture
23 string [] f = File.ReadAllLines(SN_txt);
24 foreach (var item in f)
25 if (item.Contains(SN))
26 {
27 // 因 *..* 结构文件夹名会重复,所以需要再次遍历
28 string[] pic = Directory.GetFiles(item, "*.jpg");
29 if (pic.Length > 0)
30 foreach(var i in pic)
31 return i;
32 }
33 return "NULL";
34 }
35
36 void CopySN_Picture(string soursefold, string targefold)
37 {
38 string ssfold = Path.Combine(targefold, DateTime.Now.ToString("d").Replace("/", "_") + "_SN");
39 // 创建当日SN文件夹
40 Directory.CreateDirectory(ssfold);
41
42 // 复制SN中的图片至SN文件夹
43 File.Copy(soursefold, Path.Combine(ssfold, "2.jpg"));
44 }
后续将继续更新其他功能...
【C#】【IO】【实例】接上一个统计的新功能的更多相关文章
- 实现一个类似Chrome新功能提示的popoup
先让我们看一下Chrome的popup是什么样的: 这个“直接搜索网页”与“在打开的标签页之间切换”就是两个功能导航,还做了一个动画效果,会不停的上下晃. 我通过WindowManager的addVi ...
- 上一个树形菜单的改进,增添了数据绑定功能而非仅仅的jq特效
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- java IO 实例分析
初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见 ...
- PHP 获取上一个页面的url
php $_SERVER["HTTP_REFERER"]变量可以获取上一个或前一个页面的URL地址. 比如有一个a.php页面,这个页面上有一个链接指向b.php页面,如果我们在a ...
- Selenium2学习-039-WebUI自动化实战实例-文件上传下载
通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...
- 【原创】高性能网络编程(二):上一个10年,著名的C10K并发连接问题
1.前言 对于高性能即时通讯技术(或者说互联网编程)比较关注的开发者,对C10K问题(即单机1万个并发连接问题)应该都有所了解."C10K"概念最早由Dan Kegel发布于其个人 ...
- UNIQUEIDENTIFIER列上的统计信息
UNIQUEIDENTIFIER列上的统计信息非常有意思,在它上面有一些很令人讨厌的行为.我们来看下. 问题重现(The repro) 为了向你展示我们刚抱怨的行为,我用下列简单的表定义创建了一个数据 ...
- 非索引列上的统计 <第二篇>
非索引列上的统计 有时候,可能在连接或过滤条件中的列上没有索引.即使对这种非索引列,如果查询优化器知道这些列的数据分布(统计),它也很可能做出最佳的选择. 除了索引上的统计,SQL Server可以在 ...
- 索引列上的统计 <第一篇>
一.索引在查询优化中的角色 SQL Server的查询优化器是基于开销的优化器.它通过确认选择性.数据的唯一性以及过滤数据(通过WHERE或JOIN子句)所使用的列来决定最佳的数据访问机制.统计与索引 ...
- 第十二章——SQLServer统计信息(4)——在过滤索引上的统计信息
原文:第十二章--SQLServer统计信息(4)--在过滤索引上的统计信息 前言: 从2008开始,引入了一个增强非聚集索引的新功能--过滤索引(filter index),可以使用带有where条 ...
随机推荐
- Storm整合Kafka Java API源码
1.Maven项目的pom.xml源码如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...
- MinIO分布式部署
目录 先决条件 网络和防火墙 网络 防火墙 负载均衡 顺序的主机名 驱动器要求 XFS格式性能最优 最小IO 顺序的驱动器名 任意迁移 时间同步 考虑 相同的硬软件环境 存储容量规划 推荐的操作系统 ...
- 教育法学第八章单元测试MOOC
第八章单元测试 返回 本次得分为:100.00/100.00, 本次测试的提交时间为:2020-09-06, 如果你认为本次测试成绩不理想,你可以选择 再做一次 . 1 单选(5分) 社团法人与财团法 ...
- P9140 [THUPC 2023 初赛] 背包
prologue 这很难评(调了我 1h,我都想紫砂了. 还是典型得不重构就看不见系列. analysis 如果我们还是一个正常人,那么我们大体上是能看到题目的加粗字,这个格式很明显符合我们的同余最短 ...
- 【matplotlib 实战】--饼图
饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表.在饼图中,每个扇形的弧长(以及圆心角和面积)大小,表示该种类占总体的比例,且这些扇形合在一起刚好是一个完全的圆形. 饼图最显著的功能在于表现&qu ...
- MSFvenom恶意程序生成与利用
MSFvenom 1.1 MSFvenom介绍 MSFvenom是Msfpayload和Msfencode的组合,可以生成各种攻击载荷,并且可以对载荷进行编码.做渗透测试时往往需要将有效负载部署在目标 ...
- Python 日期和时间处理教程:datetime 模块的使用
Python 中的日期不是独立的数据类型,但我们可以导入一个名为 datetime 的模块来使用日期作为日期对象. 示例:导入 datetime 模块并显示当前日期: import datetime ...
- go语言写http踩得坑
1.在运行http时,报错:panic: listen tcp: address xxxx: missing port in address, 初始 代码如下 func HelloWordHander ...
- JavaScript 语法:注释与输入 / 输出
作者:WangMin 格言:努力做好自己喜欢的每一件事 JavaScript 注释 JavaScript 注释用于解释 JavaScript 代码,提高代码的可读性,也可以用于在测试替代代码时阻止执行 ...
- TypeScript学习小结:基础使用
TypeScript学习小结:基础使用 某册子买了两年多了,到最近才开始学习TypeScript,拖延症的严重症状了:不过我还是深信人做一件事是需要一个契机的. 学完之后整体感受是:TypeScrip ...