Re: How to append "test" to a filename (after path and before extension)?
On 25.08.2011 11:50, 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"
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?
Typically I use regular expressions for this, here's just one way:
import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class NameMungle {
public static void main(String[] args) {
final String[] testData = { "a/b", "a/b/c.d", "a/b/c.d.e" };
final String append = "test";
final Pattern pat = Pattern.compile("([^.]*)(\\..*)");
for (final String s : testData) {
final File f = new File(s);
final String basename = f.getName();
final Matcher m = pat.matcher(basename);
final File o = new File(f.getParentFile(),
m.matches()
? m.group(1) + append + m.group(2)
: basename + append);
System.out.println(f + " -> " + o);
}
}
}
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/