【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.rhkb.cn/news/322964.html

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

相关文章

[1726]java试飞任务规划管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java试飞任务规划管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql…

【LLM 论文】Least-to-Most Prompting 让 LLM 实现复杂推理

论文:Least-to-Most Prompting Enables Complex Reasoning in Large Language Models ⭐⭐⭐ Google Research, ICLR 2023 论文速读 Chain-of-Thought(CoT) prompting 的方法通过结合 few-show prompt 的思路,让 LLM 能够挑战更具…

我的Transformer专栏来啦

五一节前吹的牛,五一期间没完成,今天忙里偷闲,给完成了。 那就是初步拟定了一个《Transformer最后一公里》的写作大纲。 之前一直想写一系列Transformer架构的算法解析文章,但因为一直在忙(虽然不知道在忙啥&#xf…

Linux0.11中MINIX 文件系统

阅读linux 的源码的时候对minix 文件系统有很多的疑惑,根据自己的认识将这些做一个总结。 MINIX 文件系统由六个部分组成,分别是引导块,超级块,i结点位图,逻辑块位图,i结点,数据块。 引导块&am…

数据结构的堆(c语言版)

一.堆的概念 1.堆的基本概念 在计算机科学中,堆是一种特殊的数据结构,通常用于实现优先队列和动态分配内存。 2.堆的特征 堆是一个完全二叉树,它具有以下两个主要特性: 堆序性:对于最大堆,在堆中的任意节…

wpf转换器

WPF(Windows Presentation Foundation)中的转换器主要是指IValueConverter接口的实现,它用于在数据绑定过程中转换源数据和目标数据的类型或表示形式。这种机制使得开发者能够灵活地处理数据,特别是在用户界面(UI&…

VMP 简单源码分析(.net)

虚拟机 获取CPU的型号 实现了一个指令集解释器,每个操作码对应一个特定的处理函数,用于执行相应的指令操作。在执行字节码时,解释器会根据操作码查找并调用相应的处理函数来执行指令。 截获异常 先由虚拟机处理 处理不了再抛出异常 priva…

基于Springboot的校园疫情防控系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园疫情防控系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

【可实战】被测需求理解(需求文档是啥样的、从哪些角度进行需求评审、需求分析需要分析出哪些内容、如何提高需求分析能力)

产品人员会产出一个需求文档,然后组织一个需求的宣讲。测试人员的任务就是在需求宣讲当中,分析需求有没有存在一些问题,然后在需求宣讲结束之后通过分析需求文档,分析里面的测试点并预估一个排期。 一、需求文档是什么样的&#x…

我独自升级崛起怎么下载 游戏下载教程分享

《我独自升级:崛起》这款游戏核心聚焦于激烈的战斗与角色的持续成长。新加入的玩家首要任务是熟悉基础攻击模式,随后深入探索技能组合策略与连贯招式的艺术,同时掌握防守与躲避技巧,这些都是战斗中不可或缺的关键。随着战斗的持续…

python turtle 升国旗

​一、导语 大家好,前段时间,我们画出了五星红旗,今天我们要用Python的Turtle库来绘制一个五星红旗,并让国旗上升,让我们一起来感受编程与艺术的完美结合吧!领略国家的强大!爱祖国,做一个遵纪守法的好公民。 二、效果展示 升国旗 三、开发过程 一、准备工作 首先我们…

ICode国际青少年编程竞赛- Python-2级训练场-坐标与列表练习

ICode国际青少年编程竞赛- Python-2级训练场-坐标与列表练习 1、 for i in range(6):Spaceship.step(Item[i].x - Spaceship.x)Dev.step(Item[i].y - Dev.y)Dev.step(Spaceship.y - Dev.y)2、 for i in range(5):Spaceship.step(Item[i].x - Spaceship.x)Flyer[i].step(Item[…

7.基于麻雀搜索算法(SSA)优化VMD参数(SSA-VMD)

01.智能优化算法优化VMD参数的使用说明 02.基本原理 麻雀搜索算法(SSA)是一种基于鸟类觅食行为的启发式优化算法,它模拟了麻雀在觅食时的群体行为,通过模拟麻雀的觅食过程来寻找问题的最优解。SSA的基本原理是通过模拟麻雀的搜索…

PyCharm 2024新版图文安装教程(python环境搭建+PyCharm安装+运行测试+汉化+背景图设置)

名人说:一点浩然气,千里快哉风。—— 苏轼《水调歌头》 创作者:Code_流苏(CSDN) 目录 一、Python环境搭建二、PyCharm下载及安装三、解释器配置及项目测试四、PyCharm汉化五、背景图设置 很高兴你打开了这篇博客,如有疑问&#x…

已经有 Prometheus 了,还需要夜莺?

谈起当下监控,Prometheus 无疑是最火的项目,如果只是监控机器、网络设备,Zabbix 尚可一战,如果既要监控设备又要监控应用程序、Kubernetes 等基础设施,Prometheus 就是最佳选择。甚至有些开源项目,已经内置…

【用文本生成歌声】Learn2Sing 2.0——歌声转换算法即梅尔频谱详解

一. 频谱图与梅尔谱图的介绍 频谱图:频谱图可以理解为一堆垂直堆叠在一起的快速傅里叶变换结果。 1.1 信号 在进入频谱图模块之前,首先我们需要了解信号是什么。 信号就是某一特定量随时间变化,对于音频来说,这个特定的变化量就…

搜维尔科技:OptiTrack是基于LED墙虚拟制作舞台的最佳选择

OptiTrack因其绝对精度、易用性、可靠性以及与现场工具的完美集成而被选中&#xff0c;仍然是全球首屈一指的基于 LED 墙的虚拟制作舞台的选择。 当今虚拟制作阶段的低延迟、超精确摄像机跟踪标准 /- 0.2 毫米 位置精度1 < 10 毫秒 系统延迟 /- 0.1 度 旋转精度2 电影…

流畅的python-学习笔记_符合python风格的对象

对象表示形式 查看对象说明&#xff0c;可以通过__repr__和__str__方法&#xff0c;前者主要用于开发者&#xff0c;后者主要用于用户&#xff0c;这两个方法分别对内置函数repr和str函数提供支持 向量类 备选构造方法 classmethod和staticmethod staticmethod用的不是特别…

加速科技突破2.7G高速数据接口测试技术

随着显示面板分辨率的不断提升&#xff0c;显示驱动芯片&#xff08;DDIC&#xff09;的数据接口传输速率越来越高&#xff0c;MIPI、LVDS/mLVDS、HDMI等高速数据接口在DDIC上广泛应用。为满足高速数据接口的ATE测试需求&#xff0c;作为国内少数拥有完全自研的LCD Driver测试解…

深入剖析Tomcat(六) Tomcat各组件的生命周期控制

Catalina中有很多组件&#xff0c;像上一章提到的四种容器&#xff0c;载入器&#xff0c;映射器等都是一种组件。每个组件在对外提供服务之前都需要有个启动过程&#xff1b;组件在销毁之前&#xff0c;也需要有个关闭过程&#xff1b;例如servlet容器关闭时&#xff0c;需要调…