ExpandPath

説明

relative_path の値と同等の、プラットフォームに応じた絶対パスを作成して、ベースパスに追加します。この関数では (名前に反して)、relative_path パラメータに絶対パスまたは相対パスを使用できます。

ベースパスとは、現在実行しているページのディレクトリパスです。ベースパスは pageContext.getServletContext() に格納されています。

戻り値

文字列です。相対パスの文字列の末尾にスラッシュ (または円記号) が含まれている場合は、戻り値の末尾にも同じ文字が含められます。

カテゴリ

システム関数

関数のシンタックス

ExpandPath(relative_path)

履歴

ColdFusion MX: relative_path パラメータの動作が変更されました。この関数の relative_path パラメータには、絶対パスと相対パスのどちらも使用できるようになりました。この関数ではパスの変換に、ColdFusion Administrator で定義された仮想マッピングが使用されます。この関数では、IIS、Apache、または他の Web サーバーで定義されている仮想マッピングを確実に実行できるわけではありません。

パラメータ

パラメータ

説明

relative_path

絶対パスに変換する、現在のディレクトリ (.¥ および ..¥) 内の相対または絶対ディレクトリのリファレンス名またはファイル名です。スラッシュまたは円記号を含めることができます。

また、カスタムタグディレクトリ内のファイルも解決されます。例えば、カスタムタグディレクトリ(C:\Zeus)に test.txt というファイルが存在する場合、(\test.txt を指定した)この関数では C:\Zeus\test.txt が返されます。

使用方法

このパラメータまたは返されたパスが無効である場合、エラーが発生します。この関数はメモリ内のファイルには使用できません。

次の例では、相対パスの有効な構成を示します。

  • ExpandPath( "*.*")

  • ExpandPath( "/")

  • ExpandPath( "¥")

  • ExpandPath( "/mycfpage.cfm")

  • ExpandPath( "mycfpage.cfm")

  • ExpandPath( "myDir/mycfpage.cfm")

  • ExpandPath( "/myDir/mycfpage.cfm")

  • ExpandPath( "../../mycfpage.cfm")

ColdFusion 10 での機能強化により、カスタムタグディレクトリ内のファイルも解決されるようになりました。例えば、カスタムタグディレクトリ(C:\Zeus)に test.txt というファイルが存在する場合、(\test.txt を指定した)この関数では C:\Zeus\test.txt が返されます。

<h3>ExpandPath Example</h3> 
 
<cfset thisPath=ExpandPath("*.*")> 
<cfset thisDirectory=GetDirectoryFromPath(thisPath)> 
<cfoutput> 
The current directory is: #GetDirectoryFromPath(thisPath)# 
 
<cfif IsDefined("form.yourFile") AND form.yourFile is not ""> 
    <cfset yourFile = form.yourFile> 
       <cfif FileExists(ExpandPath(yourfile))> 
         <p>Your file exists in this directory. You entered 
         the correct filename, #GetFileFromPath("#thisPath#/#yourfile#")# 
       <cfelse> 
         <p>Your file was not found in this directory: 
         <br>Here is a list of the other files in this directory: 
         <!--- use cfdirectory to give the contents of the 
         snippets directory, order by name and size ---> 
         <cfdirectory directory="#thisDirectory#" 
         name="myDirectory" 
         sort="name ASC, size DESC"> 
         <!--- Output the contents of the cfdirectory as a cftable --->     
         <cftable query="myDirectory"> 
         <cfcol header="NAME:" 
               text="#Name#"> 
         <cfcol header="SIZE:" 
               text="#Size#"> 
         </cftable> 
       </cfif> 
</cfif> 
</cfoutput> 
 
<form action="expandpath.cfm" method="post"> 
<h3>Enter the name of a file in this directory <i> 
       <font size="-1">(try expandpath.cfm)</font></i></h3> 
<input type="text" name="yourFile"> 
<input type="submit" name=""> 
</form>