Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #7371
| 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> |
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 | Next — Previous in thread | Find similar
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