2016-07-12 2 views
1

Classic ASP VBScriptを使用している人は誰でも、起動時にすべてのインクルードファイルが存在するかどうかを確認できますか?これは大きなプロジェクトで、リファクタリングが必要ですが、ファイルをサブフォルダに移動する前に、すべてのインクルードが正しいファイルを指し示していることを確認するテストをしたいと思います。私が今までここにしようとしたとき起動時にすべての必要なインクルードファイルが存在することを確認する方法

答えて

2

ない何かがありますなぜあなたは#include SSIディレクティブの2種類を持つことができますクラシックASPで

  1. 相対パスは、現在のディレクトリからのパスです。

    <!-- #include file = "subfolder/file.asp" --> 
    
  2. 仮想パスが含まれているWebアプリケーションのルートから自分の道を取るている、含まれています。あなたのWebアプリケーションでEnable Parent Pathsセットを持っている場合は

    <!-- #include virtual = "/toplevelfolder/subfolder/file.asp" --> 
    

あなたも#include fileを使用している場合、親フォルダを横断する../を使用することができます。

これをすべて念頭に置いて、1分間何をしなければならないか考えてみましょう。

まず、あなたはおそらく、あなたのWebアプリケーションを反復処理し、例えば.aspファイルを検索して、パスを引き出すために、正規表現を使用するようにループを使用して行うことができ、すべての#includeディレクティブを特定する必要があります。しかし、合併症があります。

  1. あなたは#include
  2. ワークアウトのfilevirtual種類、パスの両方のタイプを変換する可能性がGetAbsolutePathName()を使用して、ファイルの存在を確認する方法の両方を区別する必要があります。
  3. virtual
  4. ものみ、別の物理的な位置(Webアプリケーションのフォルダ構造の内部にある必要はない)にIISとその点に存在する仮想ディレクトリを指すことができるとを含みます。これは、おそらくすべての正直さの中で最大の合併症です。
関連する問題