asp.net - 查找并删除孤立的网页、图像和其他相关文件

标签 asp.net vbscript asp-classic gtd

我正在处理许多网站,其文件可追溯到 2000 年。这些网站随着时间的推移而有机增长,导致大量孤立网页,包括文件、图像、CSS 文件、JavaScript 文件等...这些孤立文件会导致许多问题,包括可维护性差、可能存在安全漏洞、客户体验差以及让像我这样的 OCD/GTD 怪胎发疯。

这些文件的数量有数千个,因此完全手动的解决方案是不可行的。最终,清理过程将需要相当大的质量检查工作,以确保我们不会无意中删除所需的文件,但我希望开发一种技术解决方案来帮助加快手动工作速度。此外,我希望将流程/实用程序落实到位,以帮助防止将来发生这种困惑状态。

环境考虑因素:

  • 经典 ASP 和 .Net
  • 运行 IIS 6 和 IIS 7 的 Windows 服务器
  • 多种环境(开发、集成、QA、阶段、生产)
  • 用于源代码控制的 TFS

在开始之前,我想从成功完成类似流程的其他人那里获得一些反馈。

具体来说,我正在寻找:

  • 识别和清理孤立文件的流程
  • 保持环境中没有孤立文件的过程
  • 帮助识别孤立文件的实用程序
  • 帮助识别损坏链接的实用程序(文件删除后)

我不是在寻找:

  • 针对我的组织强制症的解决方案...我喜欢我现在的样子。
  • Snide 对我们仍在使用经典 ASP 的评论。我已经感觉到疼痛了。无需擦进去。

最佳答案

起初,我认为您可以通过扫描文件中的链接,然后对文件夹结构进行比较来摆脱困境 - 但这只能识别简单的孤立文件,而不是相互引用的孤立文件的集合。因此,使用 grep 可能无法帮助您实现这一目标。

这不是一个简单的解决方案,但可以成为保持环境清洁的出色实用程序(因此值得付出努力)。另外,您可以在所有环境中重复使用它(并与其他人共享!)

基本思想是设置并填充一个有向图,其中每个节点的键都是绝对路径。这是通过扫描所有文件并添加依赖项来完成的 - 例如:

/index.html     -> /subfolder/file.jpg
                -> /subfolder/temp.html
                -> /error.html
/temp.html      -> /index.html
/error.html     
/stray.html     -> /index.html
/abandoned.html

然后,您可以通过在根页面上执行 BFS 来识别所有“可访问”文件。

使用方向图,您还可以按文件的进出度对文件进行分类。在上面的例子中:

/index.html     in: 1 out: 2
/temp.html      in: 1 out: 1
/error.html     in: 1 out: 0
/stray.html     in: 0 out: 1
/abandoned.html in: 0 out: 0

因此,您基本上是在寻找已放弃的 in = 0 的文件。

此外,out = 0 的文件将成为终端页面;这在您的网站上可能是理想的,也可能是不理想的(如错误所示,这是一个错误页面)。

关于asp.net - 查找并删除孤立的网页、图像和其他相关文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1702683/

相关文章:

asp.net - 如何在 Microsoft.AspNet.Identity 中设置 PhoneNumberTokenProvider 的过期时间

c# - 如何忽略 SSL 证书是由未知证书颁发机构签署的问题?

asp-classic - 经典 ASP : ASPSessionID is reused

javascript - 在 ASP 中,如何从一个 .asp 文件中调用另一个用 VB 编写的 .asp 文件中的 JavaScript 函数?

c# - 更改名称(如果已经存在)

在 WQL/SCCM 中连接两个表

windows - 如何编写 VBS 脚本来检查网站,然后停止和启动 Windows 服务

file - 从返回的文件列表中删除文件扩展名

.net - msxml6.dll 错误 '80072ee2' 操作超时

asp.net - 使用数据库托管 asp.net 网站