velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Steele" <>
Subject UNC paths in Velocity
Date Fri, 31 Aug 2007 14:50:13 GMT
Velocity does not seem to properly support UNC paths under Windows. I am running from a network
drive on a Vista box and want to point Velocity to a location relative to my current dir to
find my template files. I have code similar to the following:


        String templateDir = new File("templates");

        String absTemplateDir = templateDir.getAbsolutePath();

        Velocity.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, absTemplateDir);


        Template myTemplate = Velocity.getTemplate("my_template.vm");


The getTemplate call fails saying that it cannot find the file. The init call explains why:
it generates a log message similar to this:


INFO: FileResourceLoader : adding path '\myserver\home\peter\myproj\template'


The file path *should* be '\\myserver\home\peter\myproj\template', but Velocity strips one
of the leading backslashes. The original string is correct that’s returned by getAbsolutePath,
with four backslashes representing two real backslashes:




This is what I’d expect. This doesn’t seem to satisfy Velocity though. If I manually set
the string to




this solves the problem. What I ended up doing though was this:


        String absTemplateDir = templateDir.getAbsolutePath().replace('\\', '/');


This also works, so obviously the problem has something to do with interpreting the leading
backslash characters that represent the Windows UNC path. This seems like a bug to me…


No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.484 / Virus Database: 269.13.1/981 - Release Date: 8/31/2007 6:13 AM

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message