Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 47caac0

Browse files
Merge pull request eugenp#10285 from sk1418/delFileExt
[BAEL-4722] remove file extensions
2 parents bb74502 + 4c06b8e commit 47caac0

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.baeldung.filenamewithoutextension;
2+
3+
public class MyFilenameUtil {
4+
private MyFilenameUtil() {}
5+
6+
public static String removeFileExtension(String filename, boolean removeAllExtensions) {
7+
if (filename == null || filename.isEmpty()) {
8+
return filename;
9+
}
10+
11+
String extPattern = "(?<!^)[.]" + (removeAllExtensions ? ".*" : "[^.]*$");
12+
return filename.replaceAll(extPattern, "");
13+
}
14+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.baeldung.filenamewithoutextension;
2+
3+
import com.google.common.io.Files;
4+
import org.apache.commons.io.FilenameUtils;
5+
import org.junit.Test;
6+
7+
import static org.junit.Assert.assertEquals;
8+
import static org.junit.Assert.assertNotEquals;
9+
10+
public class FileNameDelExtensionUnitTest {
11+
12+
@Test
13+
public void givenDotFileWithoutExt_whenCallGuavaMethod_thenCannotGetDesiredResult() {
14+
//negative assertion
15+
assertNotEquals(".baeldung", Files.getNameWithoutExtension(".baeldung"));
16+
}
17+
18+
@Test
19+
public void givenFileWithoutMultipleExt_whenCallGuavaMethod_thenCannotRemoveAllExtensions() {
20+
//negative assertion
21+
assertNotEquals("baeldung", Files.getNameWithoutExtension("baeldung.tar.gz"));
22+
}
23+
24+
@Test
25+
public void givenDotFileWithoutExt_whenCallApacheCommonsMethod_thenCannotGetDesiredResult() {
26+
//negative assertion
27+
assertNotEquals(".baeldung", FilenameUtils.removeExtension(".baeldung"));
28+
}
29+
30+
@Test
31+
public void givenFileWithoutMultipleExt_whenCallApacheCommonsMethod_thenCannotRemoveAllExtensions() {
32+
//negative assertion
33+
assertNotEquals("baeldung", FilenameUtils.removeExtension("baeldung.tar.gz"));
34+
}
35+
36+
@Test
37+
public void givenFilenameNoExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
38+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung", true));
39+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung", false));
40+
}
41+
42+
@Test
43+
public void givenSingleExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
44+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung.txt", true));
45+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung.txt", false));
46+
}
47+
48+
49+
@Test
50+
public void givenDotFile_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
51+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung", true));
52+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung", false));
53+
}
54+
55+
@Test
56+
public void givenDotFileWithExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
57+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung.conf", true));
58+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung.conf", false));
59+
}
60+
61+
@Test
62+
public void givenDoubleExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
63+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung.tar.gz", true));
64+
assertEquals("baeldung.tar", MyFilenameUtil.removeFileExtension("baeldung.tar.gz", false));
65+
}
66+
67+
@Test
68+
public void givenDotFileWithDoubleExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
69+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung.conf.bak", true));
70+
assertEquals(".baeldung.conf", MyFilenameUtil.removeFileExtension(".baeldung.conf.bak", false));
71+
}
72+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /