65.9K
CodeProject 正在变化。 阅读更多。
Home

查找未使用的文件:v1.4.0

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.16/5 (8投票s)

2013年3月3日

CPOL

6分钟阅读

viewsIcon

55044

查找网站项目中的未使用文件和图片。

帮助您在 Web 项目/应用程序中查找和删除未使用的图片和文件。


最新更改

v1.4.0

  • 将 picturebox 放大了一点,并移到了主窗口边界之外,以获得更好的用户体验
  • 添加了图像预览复选框,无需 alt+单击图像即可显示
  • 为文件路径操作添加了一些额外的检查
  • 修复了一些线程安全问题
  • 在上下文菜单中添加了“启动外部程序”选项,以使用与文件关联的外部程序打开文件
  • 更改了搜索方法,速度提高 2 倍,尤其是在大型文件夹(2000+ 文件)上
  • 对列表中的文件进行了排序
  • 防止搜索自身的引用(例如,foo.css 中的 foo.css)
  • 使窗体可调整大小
  • 添加了一个按钮,可在长时间运行的情况下取消正在进行的搜索
  • 为模式文本框添加了伪下拉菜单
    • 成功搜索后,项目会自动添加
    • 可以通过右键单击文本框来删除项目
  • 在帮助菜单中添加了更新检查
  • 在选项面板中添加了自动更新检查
  • 在选项面板中添加了排除列表
    • 可以是文件名或文件夹(反斜杠)
    • 任何匹配的内容都将被忽略
  • 添加了一个树状视图窗格,用于查看资源在哪些文件中被使用
    • 有一些上下文菜单,但像多选这样的功能在树状视图中不起作用,因此保留了“平面视图”窗格
  • 修复了 Visual Studio 双击文件时崩溃的问题
    • 当 VS 选项中已选中“在解决方案资源管理器中跟踪活动项”时,就会发生这种情况
  • 暂时将 .csproj 切换回 VS2013,以修复 2013 年的一些问题。对 2015 年没有影响

引言

前几天在工作中清理项目时,我感到很沮丧,因为我想删除所有在 CSHTML、CSS 和 LESS 文件中不再引用的图片……但找不到任何工具或插件可以帮助我,所以只能一个接一个地选择每个图片名称,然后搜索整个项目以查看是否有匹配项……讨厌!

所以我决定编写一个小工具来自动完成这项工作。

可以作为独立应用程序、通过 Windows Explorer 上下文菜单、命令行或 Visual Studio 扩展程序使用。借助命令行,还可以轻松地与您喜欢的开发 IDE 集成。

 

平面视图

树视图

文件/文件夹排除

缩略图预览

 

解析对话框

 

 

 Windows Explorer(上下文菜单)  

 

 

Visual Studio(上下文菜单)

 

 

这个过程非常简单,所以除非我错过了什么,否则我很惊讶我没有在网上找到已经完成了这些功能的程序。

无论如何,这是它的工作原理:

  1. 输入一个匹配您要查找的文件的正则表达式
  2. 选择您是想匹配已使用还是未使用的文件
  3. 选择您想在其中搜索的文件类型,以查看它们是否包含引用
  4. 选择您的起始目录
  5. ......处理中

其简单的逻辑

  1. 加载基目录及子目录下的所有文件名
  2. 提取所有匹配我们正在寻找内容的文件名
  3. 提取所有匹配我们将在其中搜索的文件名
  4. 遍历我们要搜索的每个文件
  5. 打开每个文件并遍历其内容
  6. 检查内容是否包含匹配项,如果包含则添加到匹配列表中
  7. 对匹配项和所有项进行差异比较

就是这样,而且速度也很快。由于它使用标准的正则表达式作为输入,因此您可以匹配任何类型文件中的几乎任何内容。

特点:

  • 可以通过命令行启动。这样可以轻松集成到 Visual Studio、Eclipse、Zend Studio、NetBeans、IntelliJ IDEA 等中。
  • 双击可见列表中的路径将打开文件所在的目录
  • 文件处理完成后,您可以将可见列表在“已使用”/“未使用”列表之间切换
  • 在列表中选择项目并将路径导出到文本文件以供将来调查
  • 正则表达式标准在成功搜索后会被保存,并在应用程序启动时恢复
  • 在可见列表中选择一个或多个路径并单击删除,会提示您是否确实要删除文件(们)
  •   

需要 .NET 4 才能运行应用程序,或 .NET 4.5 / Visual Studio 2012(**及以上**)才能运行插件



变更日志 

v1.4.0

  • 将 picturebox 放大了一点,并移到了主窗口边界之外,以获得更好的用户体验
  • 添加了图像预览复选框,无需 alt+单击图像即可显示
  • 为文件路径操作添加了一些额外的检查
  • 修复了一些线程安全问题
  • 在上下文菜单中添加了“启动外部程序”选项,以使用与文件关联的外部程序打开文件
  • 更改了搜索方法,速度提高 2 倍,尤其是在大型文件夹(2000+ 文件)上
  • 对列表中的文件进行了排序
  • 防止搜索自身的引用(例如,foo.css 中的 foo.css)
  • 使窗体可调整大小
  • 添加了一个按钮,可在长时间运行的情况下取消正在进行的搜索
  • 为模式文本框添加了伪下拉菜单
    • 成功搜索后,项目会自动添加
    • 可以通过右键单击文本框来删除项目
  • 在帮助菜单中添加了更新检查
  • 在选项面板中添加了自动更新检查
  • 在选项面板中添加了排除列表
    • 可以是文件名或文件夹(反斜杠)
    • 任何匹配的内容都将被忽略
  • 添加了一个树状视图窗格,用于查看资源在哪些文件中被使用
    • 有一些上下文菜单,但像多选这样的功能在树状视图中不起作用,因此保留了“平面视图”窗格
  • 修复了 Visual Studio 双击文件时崩溃的问题
    • 当 VS 选项中已选中“在解决方案资源管理器中跟踪活动项”时,就会发生这种情况
  • 暂时将 .csproj 切换回 VS2013,以修复 2013 年的一些问题。对 2015 年没有影响

v1.3.1

  • 将 SVG、CSS、JS 添加到默认项目列表中
  • 将 SCSS 添加到默认文件列表中
  • 使搜索不区分区域性/不区分大小写
  • (扩展) 将 Visual Studio:Enterprise & Community 添加到支持的平台列表中
  • (扩展) 解决方案 (.sln) 现在仅使用 Visual Studio 2015 生成
    • 但插件仍可与 Visual Studio 2012 及以上版本配合使用
  • 在 Github 上发布了源代码

v1.3

  • 在列表中 Alt+单击将显示图片缩略图(如果它是图片)
  • 双击列表将打开并在解决方案资源管理器中定位到项目(仅限 VSIX)
  • Shell 集成(仅限 EXE)
    • 从帮助菜单添加/删除,或使用 -s t 参数从命令行注册/注销
  • 更多文件统计信息

v1.2

  • 对 UI 进行了一些更改
  • 上下文菜单
    • 全选
    • 选择其他
    • 导出选定项
    • 删除选定项
    • 在此处浏览
    • 验证选定项(仅限 VSIX:启动自动化的 VS 文件搜索)
      • 在项目中
      • 在解决方案中
  • 命令行参数(仅限 EXE)
    • -p 路径
    • -r 报告类型
    • -f 查找正则表达式
    • -i 内部正则表达式
  • 帮助菜单
    • 手动
    • 更改日志
    • 网站
    • 关于
    • 许可证
  • 更多文件统计信息
  • 更多的错误处理

v1.1

  • 如果没有选择任何文件,则禁用删除按钮
  • 启用了在网站项目中的搜索(VSIX)
  • 对无效和/或不成功的操作提供更多错误消息

 

v1.0(Visual Studio 插件)

  • .EXE 和 VSIX 版本现在共享相同的代码库
  • 各种修改以适应 Visual Studio 模式和独立模式下的不同行为
  • 启用了在应用程序项目中的搜索

 

v1.0(应用程序)

  • 在“已使用”/“未使用”列表之间切换
  • 导出“已使用”/“未使用”列表
  • 删除文件(们),并带有确认提示
  • 搜索后保存搜索标准
  • 显示无效正则表达式的错误
  • 应用程序启动时恢复搜索标准
  • 双击“已使用”/“未使用”列表会打开包含的目录
  • 允许通过命令行传递文件/目录路径
© . All rights reserved.