pf » Getting the Application Root Path in ColdFusion

Getting the Application Root Path in ColdFusion

coldfusion

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
4 people found this page useful, what do you think?

WAF for CF
Trackback Address: 630/9670773582D93C722429E61A9ABCCE4D
On 04/09/2007 at 3:19:42 PM MDT Raymond Camden wrote:
1
Send to cflib?

On 04/09/2007 at 6:03:58 PM MDT 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 MST Rob Munn wrote:
3
Pete, nifty little function, thanks, it just saved me some time.

On 05/08/2008 at 10:33:10 AM MDT 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 MST 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)




  



Spell Checker by Foundeo





Subscribe to my RSS Feed: solosub RSS
Tags