先用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】【实例】接上一个统计的新功能的更多相关文章

  1. 实现一个类似Chrome新功能提示的popoup

    先让我们看一下Chrome的popup是什么样的: 这个“直接搜索网页”与“在打开的标签页之间切换”就是两个功能导航,还做了一个动画效果,会不停的上下晃. 我通过WindowManager的addVi ...

  2. 上一个树形菜单的改进,增添了数据绑定功能而非仅仅的jq特效

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  3. java IO 实例分析

    初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见 ...

  4. PHP 获取上一个页面的url

    php $_SERVER["HTTP_REFERER"]变量可以获取上一个或前一个页面的URL地址. 比如有一个a.php页面,这个页面上有一个链接指向b.php页面,如果我们在a ...

  5. Selenium2学习-039-WebUI自动化实战实例-文件上传下载

    通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...

  6. 【原创】高性能网络编程(二):上一个10年,著名的C10K并发连接问题

    1.前言 对于高性能即时通讯技术(或者说互联网编程)比较关注的开发者,对C10K问题(即单机1万个并发连接问题)应该都有所了解."C10K"概念最早由Dan Kegel发布于其个人 ...

  7. UNIQUEIDENTIFIER列上的统计信息

    UNIQUEIDENTIFIER列上的统计信息非常有意思,在它上面有一些很令人讨厌的行为.我们来看下. 问题重现(The repro) 为了向你展示我们刚抱怨的行为,我用下列简单的表定义创建了一个数据 ...

  8. 非索引列上的统计 <第二篇>

    非索引列上的统计 有时候,可能在连接或过滤条件中的列上没有索引.即使对这种非索引列,如果查询优化器知道这些列的数据分布(统计),它也很可能做出最佳的选择. 除了索引上的统计,SQL Server可以在 ...

  9. 索引列上的统计 <第一篇>

    一.索引在查询优化中的角色 SQL Server的查询优化器是基于开销的优化器.它通过确认选择性.数据的唯一性以及过滤数据(通过WHERE或JOIN子句)所使用的列来决定最佳的数据访问机制.统计与索引 ...

  10. 第十二章——SQLServer统计信息(4)——在过滤索引上的统计信息

    原文:第十二章--SQLServer统计信息(4)--在过滤索引上的统计信息 前言: 从2008开始,引入了一个增强非聚集索引的新功能--过滤索引(filter index),可以使用带有where条 ...

随机推荐

  1. ElasticSearch系列——倒排索引、删除映射类型、打分机制、配置文件、常见错误

    文章目录 1 倒排索引 2 删除映射类型 一 前言 二 什么是映射类型? 三 为什么要删除映射类型? 四 映射类型的替代方法 4.1 将映射类型分开存储在索引中 4.2 自定义类型字段回到顶部 五 没 ...

  2. Python基础—— 模块介绍、模块的使用、包介绍、 包的使用、软件开发目录规范

    文章目录 一 模块介绍 二 模块的使用 2.1 import语句 2.2 from-import 语句 2.3 其他导入语法(as) 2.4 循环导入问题 2.5 搜索模块的路径与优先级 2.6 区分 ...

  3. 【翻译】listener.ora

    今天仔细过一遍oracle的监听配置文件描述. cat $ORACLE_HOME/network/admin/samples/listener.ora # copyright (c) 1997 by ...

  4. 可观测性数据收集集大成者 Vector 介绍

    如果企业提供 IT 在线服务,那么可观测性能力是必不可少的."可观测性" 这个词近来也越发火爆,不懂 "可观测性" 都不好意思出门了.但是可观测性能力的构建却着 ...

  5. 人均瑞数系列,瑞数 6 代 JS 逆向分析

    声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容.敏感网址.数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许 ...

  6. powershell 7 初体验

    支持枚举定义,类定义\类继承\接口继承,不支持接口定义\泛型类定义\泛型函数定义,但是作为shell脚本已经相当让人惊喜了, 基本逻辑可以直接套用C#语法格式 # enum_sample/main.p ...

  7. PTA乙级1099

    #include"bits/stdc++.h" using namespace std; int prime(int x) { if(x<2) return 0; for(i ...

  8. 搞懂Event Loop

    本文关键: V8是单线程的 任务队列排队执行 抽出io命令抽出到evenloop线程,消息线程,区别与主线程.(同步和异步) 微任务和宏任务执行顺序 重绘和回流 以上流程无限循环 可以这样理解,一个人 ...

  9. [转载]R2: 已解释和未解释的方差

    估计值的方差与总体方差之间的差异就是回归方程对方差的解释率.试举一例,如图 1,身高与体重的回归线显示身高与体重之间呈正相关,Mr. Y身高76英寸体重220磅(图 1中插图.cdr的红点),他与体重 ...

  10. 从HumanEval到CoderEval: 你的代码生成模型真的work吗?

    本文分享自华为云社区<从HumanEval到CoderEval: 你的代码生成模型真的work吗?>,作者:华为云软件分析Lab . 本文主要介绍了一个名为CoderEval的代码生成大模 ...