如何验证启动时是否存在所有必需的包含文件

时间:2016-07-12 11:25:56

标签: vbscript asp-classic

是否还有人使用Classic ASP VBScript并知道是否可以在启动时验证所有包含的文件是否存在?这是一个大型项目,需要进行一些重构,但在将文件移动到子文件夹之前,我希望进行一些测试,以确保所有包含仍然指向正确的文件。

1 个答案:

答案 0 :(得分:2)

不是我曾尝试过的东西,这就是为什么

在Classic ASP中,您可以有两种类型的#include SSI指令;

  1. 相对路径包含,它们从当前目录的路径。

    <!-- #include file = "subfolder/file.asp" -->
    
  2. 虚拟路径包含,它从包含Web应用程序的Root获取其路径。

    <!-- #include virtual = "/toplevelfolder/subfolder/file.asp" -->
    
  3. 如果您在Web应用程序中设置了Enable Parent Paths,则在使用../时也可以使用#include file遍历父文件夹。

    考虑到这一切,请考虑一下你必须做些什么。

    首先,您需要识别所有可能使用循环迭代Web应用程序并查找#include文件然后使用正则表达式拉出的.asp指令路径。然而,有并发症。

    1. 您必须区分file
    2. virtual#include类型
    3. 解决两种类型路径的方法,可能使用GetAbsolutePathName()并验证文件是否存在。
    4. virtual includes还可以指向仅存在于IIS中且指向另一个物理位置的虚拟目录(不必位于Web应用程序的文件夹结构中) 。这可能是所有诚实中最大的复杂因素。