ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Weintraub <>
Subject Re: Normalizing paths in files
Date Wed, 25 Mar 2009 19:41:57 GMT
Try the "dirname" task. This will normalize a file name, but it will
also give it the full directory path and not the relative path:

<property name=""

<dirname property="dirname" file="${}/FOO"/>
<echo message="This is the path: ${dirname}"/>

will print out: "/home/dweintraub/this/is/a/test.txt".

Notice I appended "FOO" on the path, so <dirname> would also include
the file name too.

On Wed, Mar 25, 2009 at 1:51 AM, jbmdharris <> wrote:
> Does anyone have any good examples of normalizing paths in files?
> I have files that have paths like this in them:
> ../../foo.htm
> Which I process to make fully-qualified like this:
> /abc/def/ghi/jkl/mno/../../foo.htm
> Now I want to normalize the fully-qualified paths to remove the "../" parts
> to get a result like this:
> /abc/def/ghi/foo.htm
> I've found I can use <replaceregexp> like this to replace one set of "../"
> pairs:
> <replaceregexp
> match="${util.includeTagStartRegExp}(.*?)/([^/.]*?)/\.\./(.*?)${util.includeTagEndRegExp}"
> replace="${util.includeTagStartRegExp}\1/\3${util.includeTagEndRegExp}"
> flags="sg" byline="false">
> And if I enclose this in a for loop, I can call it multiple times to remove
> multiple sets of "../" pairs.  However, I don't like hardcoding the number
> of loops.  Because it would be complicated to actually scan the files to get
> the maximum number of "../" path components, the simplest thing for me to
> use as my loop count is the maximum depth of the directory tree.  Is there a
> way to compute this?
> I've tried looping over the directory tree, getting the directories,
> stripping out everything that isn't a "/".  However, I can't figure out how
> to determine which of these strings is the longest inside a for loop so I
> know what my loop count will be.
> --
> View this message in context:
> Sent from the Ant - Users mailing list archive at
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

David Weintraub

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message