【win10 文件夹数量和看到不一致查看隐藏文件已经打开,Thumb文件作妖】

目录

  • 任务介绍:
    • 重命名规则
    • 修改前
    • 修改后
  • 实现思路
    • VB代码实现
    • BUG犯罪现场(眼见不一定为实)
      • 破案1:抓顶风作案的反贼!!!
      • 破案2:破隐身抓刺客!!!
        • 杀器:新建文件夹全部打印文件名对比文件名区别
      • Thumb.db是什么?
      • 如何删除Thumbs.db 文件
      • 如何禁止Thumbs.db 文件

任务介绍:

批量把多个文件夹的图片重名命名为对应表格的L列数据;

重命名规则

在这里插入图片描述

修改前

在这里插入图片描述

修改后

在这里插入图片描述

实现思路

遍历工作表
填充字典:字典记录 键值对信息: key-旧名称 value-新名称 (分别对应每个表个A列和L列)
遍历父文件夹下的子文件夹:
匹配工作表名和子文件夹名
检查文件数量匹配
处理文件名和重命名

  1. 设置变量和文件夹路径:

    • 在代码中首先声明了各种变量,如文件夹路径、工作簿、工作表、行数、旧文件名、新文件名等。
    • folderPath 变量赋值为包含要处理文件的文件夹路径。
  2. 创建文件系统对象:

    • 使用 CreateObject("Scripting.FileSystemObject") 创建了文件系统对象 (fso),用于操作文件和文件夹。
  3. 遍历工作簿中的每个工作表:

    • For Each ws In wb.Worksheets 循环遍历工作簿中的每个工作表。
  4. 填充字典:

    • 对于当前工作表,通过 For 循环,提取指定列的数据,并存储到一个字典 dictSheet 中。其中,键是文件名,值是对应的新文件名。
  5. 遍历父文件夹下的子文件夹:

    • For Each subFolder In folder.SubFolders 遍历父文件夹下的所有子文件夹。
  6. 匹配工作表名和子文件夹名:

    • If subFolder.Name = ws.Name Then 确保子文件夹的名称与当前工作表名匹配。
  7. 检查文件数量匹配:

    • 检查当前子文件夹内的文件数量是否与当前工作表中特定数据行数量匹配。
  8. 处理文件名和重命名:

    • 遍历当前子文件夹下的所有文件,对每个文件的文件名进行处理。
    • 检查文件名是否存在于字典中,如果存在则重命名文件,将文件名更改为字典中对应的值。
  9. 重命名文件:

    • 使用文件系统对象的 Name 方法来重命名文件,将旧文件名改为新文件名。
  10. 输出信息或调试消息:

    • 使用 Debug.Print 输出信息,比如某个工作表文件数量不匹配的情况。

这段代码的主要逻辑是根据工作表中的数据,匹配文件名并进行重命名。通过循环遍历每个工作表以及文件夹中的文件,它自动将文件名更改为给定的值。

VB代码实现

Sub RenameImages()Dim folderPath As StringDim wb As WorkbookDim ws As WorksheetDim cureetSheetlastRow As LongDim i As LongDim oldName As String, newName As StringDim dictSheet As ObjectDim keyCell As Range, valueCell As RangeDim fso As ObjectDim folder As ObjectDim subFolder As ObjectDim file As ObjectDim fileCount As IntegerDim key As VariantDim value As Variant' 设置文件夹路径folderPath = "C:\Users\Administrator\Desktop\Plasma 变色标签" ' 修改为您的父文件夹路径Set fso = CreateObject("Scripting.FileSystemObject")Set wb = ThisWorkbookFor Each ws In wb.WorksheetscureetSheetlastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).RowSet dictSheet = CreateObject("Scripting.Dictionary")' 填充字典For i = 5 To cureetSheetlastRowSet keyCell = ws.Cells(i, "A")Set valueCell = ws.Cells(i, "L")dictSheet(Trim(keyCell.value)) = Trim(valueCell.value)Next i'For Each key In dictSheet.Keys'Debug.Print "Key: " & key & ", Value: " & dictSheet(key)'Next key' 遍历父文件夹下所有子文件夹Set folder = fso.GetFolder(folderPath)For Each subFolder In folder.SubFolders' 判断子文件夹名称是否为当前工作表名称'If subFolder.Name = "3.28" Then''Debug.Print subFolder.Files.Count'For Each file In subFolder.Files'Debug.Print file.Path'Next file'End IfIf subFolder.Name = ws.Name Then' 获取子文件夹内文件数量fileCount = subFolder.Files.Count - 1'判断子文件文件数量是否等于currentSheetLast-4If fileCount = (cureetSheetlastRow - 4) Then' 遍历当前子文件夹下所有文件For Each file In subFolder.FilesoldName = file.PathDim fileName As StringfileName = fso.GetBaseName(file.Path) ' 获取文件名'Debug.Print "正在处理文件: " & fileName'If dictSheet.Exists("1") Then'MsgBox "存在1"'Else'MsgBox "不存在1"'End If' 检查文件名是否在字典中,并重命名文件If dictSheet.Exists(fileName) ThennewName = dictSheet(fileName) & ".png"  ' 新的文件名为对应字典值' 使用文件系统对象的 Name 方法来重命名文件fso.GetFile(oldName).Name = dictSheet(fileName) & ".png"End IfNext fileElseDebug.Print ws.Name & " 文件数量:" & fileCount & " " & "表格数量" & cureetSheetlastRow - 4End IfEnd IfNext subFolderNext ws
End Sub

BUG犯罪现场(眼见不一定为实)

代码中的防呆设计:
子文件夹的文件数量要和Excel对应表格A列序号数量一致。
打印文件夹数量每次都比Excel的序号数量多一个或者二个!!!特别奇怪!!!!

破案1:抓顶风作案的反贼!!!

图片为中图标查看的时候我没发现这个刺客!!!

查看设置为列表!! 发现了不一样!!!
在这里插入图片描述

破案2:破隐身抓刺客!!!

你以为查看设置了显示隐藏文件夹就稳了???
不行滴,年轻人!!!

判断文件图片数量和表格A列序号的数量(A5到最后一行),总是文件的数量总是显示多一个,全部打印出来发现是Thumb.db ,就算在查看中设置把文件隐藏打开还是看不到这个文件,但是打印文件夹文件名称会打印!!!

杀器:新建文件夹全部打印文件名对比文件名区别

新建一个文件夹复制3.28文件夹所有图片到新文件夹test,打印两个文件夹目录下的文件名,全部复制到Excel中对比,发现原文件夹多了Thumbs.db!!!
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Thumb.db是什么?

Thumbs.db 是Windows操作系统下的一个系统隐藏文件,用于存储缩略图和预览图像的缓存信息。这个文件通常会在文件夹中出现,当操作系统需要显示文件夹中的缩略图或预览图时,会自动生成这个Thumbs.db文件来加快图像显示的速度。

下面是关于Thumbs.db文件的一些特点和信息:

  1. 缓存信息Thumbs.db文件会存储与文件夹中的图片文件相关的缩略图信息,这些缩略图可以帮助操作系统快速显示文件夹中的预览图像,而不必重新生成缩略图。

  2. 隐藏文件Thumbs.db文件通常是一个系统隐藏文件,在常规情况下,用户是看不到这个文件的,除非在Windows文件夹选项中选择显示隐藏文件和文件扩展名。

  3. 占用磁盘空间:虽然Thumbs.db文件有助于加快图像预览的显示速度,但有时会被用户视为占用磁盘空间的不必要文件。

  4. 删除注意:在某些情况下,用户可能选择手动删除Thumbs.db文件,但系统会在需要时重新生成这些文件。可以通过更改Windows文件夹选项来禁用系统生成Thumbs.db文件,但这可能会影响文件夹中的缩略图显示速度。

总的来说,Thumbs.db文件是Windows系统用来缓存文件夹中缩略图信息的隐藏文件,有助于提高文件夹图像显示的效率。

如何删除Thumbs.db 文件

1 当前目录下使用进入cmd 运行程序

 del /f /s /q /a thumbs.db 

2 遍历文件夹文件删除,所以在获取需要处理的文件实际数量时,可以先把文件名称打印出来查看是否存在Thumbs.db文件,存在则删除,删除后计数才比较准确

如何禁止Thumbs.db 文件

Win10系统禁止生成Thumbs.db缩略图缓存的方法
https://www.cnblogs.com/Music/p/hide-win10-thumbs-dot-db.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人系统ros2-开发实践08-了解如何使用 tf2 来访问坐标帧转换(Python)

tf2 库允许你在 ROS 节点中查询两个帧之间的转换。这个查询可以是阻塞的,也可以是非阻塞的,取决于你的需求。下面是一个基本的 Python 示例,展示如何在 ROS 节点中使用 tf2 查询帧转换。 本教程假设您已完成tf2 静态广播器教程 (Python)和tf…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 5月10日,星期五

每天一分钟,知晓天下事! 2024年5月10日 星期五 农历四月初三 1、 商务部:汽车以旧换新补贴可与新能源汽车购置税减免等叠加享受。 2、 教育部:京津优质中小学基础教育资源同雄安共享。 3、 医保局:发挥零售药店等不同…

HarmonyOS NEXT星河版之美团外卖点餐功能实战(上)

文章目录 一、目标二、开撸2.1 目录结构2.2 页面模块拆分2.3 主体拆分布局2.4 底部购物车布局2.5 顶部布局2.6 点菜布局---左2.7 菜品Item封装2.7 点菜布局---右2.8 主页面整体布局 三、小结 一、目标 二、开撸 2.1 目录结构 2.2 页面模块拆分 将页面主体拆为三部分&#xff…

Middle for Mac:简洁高效的文本编辑软件

追求简洁与高效?Middle for Mac将是您文本编辑的最佳选择。这款Mac平台上的文本编辑器,以其独特的魅力和实用的功能,赢得了众多用户的喜爱。 Middle注重用户体验,采用简洁直观的界面设计,让您能够迅速上手并享受高效的…

204. 计数质数

Problem: 204. 计数质数 文章目录 思路解题方法复杂度Code 思路 这个问题的关键是找出小于n的所有质数。质数是只有两个正因数(1和它自身)的自然数,且必须大于1。 解题方法 我们可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes&a…

【设计模式】JAVA Design Patterns——Abstract-document

🔍 目的 使用动态属性,并在保持类型安全的同时实现非类型化语言的灵活性。 🔍 解释 抽象文档模式使您能够处理其他非静态属性。 此模式使用特征的概念来实现类型安全,并将不同类的属性分离为一组接口 真实世界例子 考虑由多个部…

docker学习笔记(五):harbor仓库搭建与简单应用

harbor私有仓库 简介 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管…

组件目录存放问题

目录 一、思考引入 二、组件分类 三、组件分类的目的 一、思考引入 .vue文件本质无区别,而路由相关的组件,为什么要放在views目录呢? 二、组件分类 .vue文件分2类:页面组件和复用组件。注意:都是.vue文件&#xff…

【八股系列】React中props和state的区别是什么?

React中props和state的区别是: props是用来从父组件向子组件进行传递数据的,在子组件中可以用props来接收到父组件传递过来的参数。props是不可变的,用户不能在子组件中修改props的值,因为从父组件中传递过来的值被认为是不可变数…

HJ19 简单错误记录

问题概要 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 对应牛客网题目HJ19 简单错误记录 思路分析 其实这个题目并没有用到特别复杂的技巧,重点是对字符串的处理,以及模拟整个记录的过程。 代码实现 #include…

漫画对话 ai翻译

復讐の教科書ーー81 81-1 いい加減吐け!!冴木!! 快说吧!!冴木!! お前が一連の事件の犯人なんだろ!? 你就是连续事件的犯人吧!? だか…

400G QSFP-DD光模块的分类及应用领域

400G QSFP-DD光模块是一种光通信设备,具有高带宽和高密度的特点,适用于各种数据中心和通信网络。本文将介绍400G QSFP-DD光模块的分类和应用领域。 400G QSFP-DD光模块的分类 400G QSFP-DD光模块可以根据其传输速率、光纤类型和工作距离等因素进行分类。…

SpringBoot的启动器——Spring-boot-starter介绍和常见启动器

1、Starter是什么 Spring Boot通过将我们常用的功能场景抽取出来,做成的一系列的启动器,我们只需要在项目中引入这些starter,相关的所有依赖就会全部被导入进来,并且我们可以抛弃繁杂的配置,例如: ​ spri…

探索Java的未来:创新与演进的旅程

探索Java的未来:创新与演进的旅程 Java,这个被誉为“一次编写,到处运行”的编程语言,自1995年诞生以来,一直以其跨平台性、面向对象和强大的安全性而著称。随着技术的不断进步和市场的不断变化,Java也在不…

游戏工作室如何利用惯性动作捕捉技术制作动画?

随着动捕设备不断进步和游戏行业的发展,惯性动作捕捉技术在游戏开发领域逐渐普及。惯性动作捕捉技术,可以精准捕捉现实世界中的真人动作,并将其精准应用于虚拟角色上,使游戏中的角色动作可以呈现出更写实、逼真和沉浸感&#xff0…

##10 卷积神经网络(CNN):深度学习的视觉之眼

文章目录 前言1. CNN的诞生与发展2. CNN的核心概念3. 在PyTorch中构建CNN4. CNN的训练过程5. 应用:使用CNN进行图像分类5. 应用:使用CNN进行时序数据预测代码实例7. 总结与展望前言 在深度学习的领域中,卷积神经网络(CNN)已经成为视觉识别任务的核心技术。自从AlexNet在2…

光伏设备制造5G智能工厂数字孪生可视化平台,推进行业数字化转型

光伏设备制造5G智能工厂数字孪生可视化平台,推进行业数字化转型。光伏设备制造5G智能工厂数字孪生可视化平台是光伏行业数字化转型的重要一环。通过数字孪生平台,光伏设备制造企业可以实现对生产过程的全面监控和智能管理,提高生产效率&#…

ESP32-C3模组上跑通MQTT(4)

接前一篇文章:ESP32-C3模组上跑通MQTT(3) 本文内容参考: 《ESP32-C3 物联网工程开发实战》 特此致谢! 上一回讲到了MQTT的消息格式,讲解了MQTT控制报文中的固定头中的控制报文的类型、消息质量等级和标志…

基于51单片机的智能导盲手杖—超声波测距

基于51单片机的智能导盲手杖 (仿真+程序原理图+PCB设计报告) 功能介绍 具体功能: 1.显示前方障碍物距离。 2.实时测量距离,并通过蜂鸣器提醒距离过短,蜂鸣器蜂鸣发出预警。 3.可以通过按键调…

吴恩达机器学习笔记:第 9 周-17大规模机器学习(Large Scale Machine Learning)17.1-17.2

目录 第 9 周 17、 大规模机器学习(Large Scale Machine Learning)17.1 大型数据集的学习17.2 随机梯度下降法 第 9 周 17、 大规模机器学习(Large Scale Machine Learning) 17.1 大型数据集的学习 如果我们有一个低方差的模型,增加数据集的规模可以帮助你获得更好…