Getting the Application Root Path in ColdFusion
April 09, 2007
I wrote a handy function today that will return the server file system path of the acting Application.cfm file for a ColdFusion application. It works by working its way up the directory tree until it finds an Application.cfm file. If it doesn't find one it will throw an exception.
<cffunction name="getApplicationRootPath" returntype="string" hint="Returns the root path of the acting Application.cfm file." output="false" access="public">
<cfargument name="base_path" default="./" hint="Normally you want to leave this as default" required="false">
<cfset var actual_path = ExpandPath(arguments.base_path)>
<cfif FileExists(ExpandPath(arguments.base_path & "Application.cfm"))>
<cfreturn actual_path>
<cfelseif REFind(".*[/\\].*[/\\].*", actual_path)>
<cfreturn getApplicationRootPath("../#arguments.base_path#")>
<cfelse>
<!--- we have reached the root dir, so throw an error not found --->
<cfthrow message="Unable to determine Application Root Path" detail="#actual_path#">
</cfif>
</cffunction>
It probably could be optimized a bit more, but it does the trick for me.
Related Entries
- Top 10 Underrated Functions in ColdFusion - January 10, 2007
- Hands on ColdFusion Security Training - February 4, 2010
- Implicit Structure Notation ColdFusion - January 13, 2009
- Mastering CFQUERYPARAM - July 24, 2008
- Getting ColdFusion SQL Statements from SQL Server Trace - June 16, 2008
Trackbacks
Trackback Address: 630/9670773582D93C722429E61A9ABCCE4D
Comments
On 04/09/2007 at 3:19:42 PM EDT Raymond Camden wrote:
1
Send to cflib?
On 04/09/2007 at 6:03:58 PM EDT Boyan wrote:
2
Awesome! Thanks! Where were you a few months ago when I really needed one of these?! Just kidding, thanks for sharing.
On 02/20/2008 at 2:32:44 PM EST Rob Munn wrote:
3
Pete, nifty little function, thanks, it just saved me some time.
On 05/08/2008 at 10:33:10 AM EDT magruth wrote:
4
This was a great way for me to determine what environment my application was running in. Thanks!
On 12/26/2008 at 5:04:53 PM EST Chris wrote:
5
alternately you could put this in the application file itself
<cfset request.appPath = GetCurrentTemplatePath()>
That will give you a request var with the same info in it (server path to the application)
Post a Comment
Recent Entries
- Cache Template in Request Setting Explained
- What Version of Java is ColdFusion Using?
- ColdFusion 9 Performance Brief from Adobe
- Request Filtering in IIS 7 Howto
- J2EE Session Cookies on ColdFusion / JRun
- Hands on ColdFusion Security Training
- ColdFusion 9 Solr Vulnerability - Are you at Risk?
- FCKEditor Year 2010 Bug for Firefox 3.6 with ColdFusion
<cfset request.appPath = GetCurrentTemplatePath()>
That will give you a request var with the same info in it (server path to the application)



add to del.icio.us



