Arbeitet noch jemand mit Classic ASP VBScript und weiß, ob es beim Start möglich ist, alle enthaltenen Dateien zu überprüfen? Dies ist ein großes Projekt und erfordert etwas Refactoring, aber bevor ich Dateien in Unterordner verschiebe, möchte ich einige Tests durchführen, die sicherstellen, dass alle Includes immer noch auf die richtigen Dateien zeigen.Wie überprüft man, ob beim Start alle benötigten Include-Dateien vorhanden sind
Antwort
nicht etwas, das ich je ausprobiert habe und hier ist der Grund
im klassischen ASP Sie zwei Arten von #include
SSI-Richtlinien haben können;
Relative Pfad enthält, die ihren Weg aus dem aktuellen Verzeichnis.
<!-- #include file = "subfolder/file.asp" -->
virtueller Pfad enthält, die aus der Wurzel der enthaltenden Web Application ihren Weg nehmen.
<!-- #include virtual = "/toplevelfolder/subfolder/file.asp" -->
Wenn Sie Enable Parent Paths
Satz in Ihrer Web Application haben, können Sie auch ../
verwenden geordneten Ordner zu durchqueren, wenn #include file
verwenden.
Denken Sie bei all dem daran, was Sie für eine Minute tun müssten.
Zuerst müssen Sie alle #include
Direktiven identifizieren, die Sie wahrscheinlich mit einer Schleife verwenden könnten, um Ihre Webanwendung zu durchlaufen und die .asp
Dateien zum Beispiel zu finden und dann einen regulären Ausdruck zu verwenden, um den Pfad herauszuziehen. Es gibt jedoch Komplikationen.
- Sie würden beide
file
undvirtual
Arten von#include
- Workout zu unterscheiden haben eine Möglichkeit, beiden Arten von Pfaden zu übersetzen, möglicherweise
GetAbsolutePathName()
verwenden und überprüfen Sie die Existenz von Dateien. virtual
können auch auf virtuelle Verzeichnisse verweisen, die nur in IIS vorhanden sind und auf einen anderen physischen Speicherort zeigen (muss nicht innerhalb der Ordnerstrukturen der Webanwendung sein). Dies ist wahrscheinlich die größte Komplikation in aller Ehrlichkeit.