Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #7371

Re: How to append "test" to a filename (after path and before extension)?

From Eric Sosman <esosman@ieee-dot-org.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: How to append "test" to a filename (after path and before extension)?
Date 2011-08-25 07:30 -0400
Organization A noiseless patient Spider
Message-ID <j35bos$jia$1@dont-email.me> (permalink)
References <4e561ae9$0$7610$9b4e6d93@newsspool1.arcor-online.net>

Show all headers | View raw


On 8/25/2011 5:50 AM, Jochen Brenzlinger wrote:
> Let's start with a filename which is stored in a String variable e.g.
>
> String fn = "D:\project\java\testproj\log2011.log"

     Aside: Those backslash characters need some attention ...

> I want to append "test" to the file basename but keep path and extension.
> The resulting filename for the example above should be:
>
> string fn2 = "D:\project\java\testproj\log2011test.log"
>
> How can I do this programmatically from Java?

     A bare-bones approach:

	int dot = fn.lastIndexOf('.');
	String fn2 = fn.substring(0, dot) + "test" + fn.substring(dot);

In actual use you'd want some sanity checking to be sure the '.'
is in fact present and is after the last '\', so you wouldn't
get fooled by

	D:\project\java\testproj\config
or
	D:\project\java\testproj.old\data

You could guard against such things by using fn.lastIndexOf('\\')
to locate the rightmost back-slash and checking that the '.' does
in fact appear even further right.  However, I think you're better
off using the File class to chop up and reassemble file names in a
(mostly) platform-independent way, e.g.

	File base = new File(fn);
	String name = base.getName();  // handles / or \ or whatever
	int dot = name.lastIndexOf('.');
	String newname = (dot < 0) ? name + "test"
	    : name.substring(0, dot) + "test" + name.substring(dot);
	File test = new File(base.getParentFile(), newname);
	String fn2 = test.getPath();  // if needed

This may seem like a lot of running around for little effect, but
it protects you from some unpleasant surprises in the long run.

-- 
Eric Sosman
esosman@ieee-dot-org.invalid

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Find similar


Thread

How to append "test" to a filename (after path and before extension)? jochen2@brenz.com (Jochen Brenzlinger) - 2011-08-25 09:50 +0000
  Re: How to append "test" to a filename (after path and before extension)? Robert Klemme <shortcutter@googlemail.com> - 2011-08-25 13:02 +0200
  Re: How to append "test" to a filename (after path and before extension)? Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-08-25 07:30 -0400

csiph-web