private static void filenameComponents_() {
String filename = "X:\\JCG\\articles\\org.apache.commons.io.FilenameUtils Example\\notes.txt";
System.out.println("*** File name components ***");
System.out.println("File name: " + filename);
String prefix = FilenameUtils.getPrefix(filename);
System.out.println("Prefix: " + prefix);
String path = FilenameUtils.getPath(filename);
System.out.println("Path: " + path);
String fullPath = FilenameUtils.getFullPath(filename);
System.out.println("Full path: " + fullPath);
String name = FilenameUtils.getName(filename);
System.out.println("Name: " + name);
String baseName = FilenameUtils.getBaseName(filename);
System.out.println("Base name: " + baseName);
String extension = FilenameUtils.getExtension(filename);
System.out.println("Extension: " + extension);
}
public static void usingFilenameUtils() throws IOException {
String path = "C:\\dev\\project\\file.txt";
System.out.println("Full Path: " +FilenameUtils.getFullPath(path));
System.out.println("Relative Path: " +FilenameUtils.getPath(path));
System.out.println("Prefix: " +FilenameUtils.getPrefix(path));
System.out.println("Extension: " + FilenameUtils.getExtension(path));
System.out.println("Base: " + FilenameUtils.getBaseName(path));
System.out.println("Name: " + FilenameUtils.getName(path));
String filename = "C:/commons/io/../lang/project.xml";
System.out.println("Normalized Path: " + FilenameUtils.normalize(filename));
}
String ext1 = FilenameUtils.getExtension("/path/to/file/foo.txt"); // returns "txt"
String ext2 = FilenameUtils.getExtension("bar.exe"); // returns "exe"
public String getExtensionByApacheCommonLib(String filename) {
return FilenameUtils.getExtension(filename);
}
public void testGetExtension() {
assertEquals(null, FilenameUtils.getExtension(null));
assertEquals("ext", FilenameUtils.getExtension("file.ext"));
assertEquals("", FilenameUtils.getExtension("README"));
assertEquals("com", FilenameUtils.getExtension("domain.dot.com"));
assertEquals("jpeg", FilenameUtils.getExtension("image.jpeg"));
assertEquals("", FilenameUtils.getExtension("a.b/c"));
assertEquals("txt", FilenameUtils.getExtension("a.b/c.txt"));
assertEquals("", FilenameUtils.getExtension("a/b/c"));
assertEquals("", FilenameUtils.getExtension("a.b\\c"));
assertEquals("txt", FilenameUtils.getExtension("a.b\\c.txt"));
assertEquals("", FilenameUtils.getExtension("a\\b\\c"));
assertEquals("", FilenameUtils.getExtension("C:\\temp\\foo.bar\\README"));
assertEquals("ext", FilenameUtils.getExtension("../filename.ext"));
}
public boolean isValid(final String value, final ConstraintValidatorContext context) {
try {
if (StringUtils.isEmpty(value)) {
return true; // do not validate empty value there are other constraints for that e.g. @NotNull, @Size etc...
}
final Path path = Paths.get(value);
if (checkIfExists && !path.toFile().exists()) {
return false;
}
final String fileExt = FilenameUtils.getExtension(value);
return allowableFileExtensions.isEmpty() ||
!allowableFileExtensions.stream().filter(fileExt::equalsIgnoreCase).findFirst().orElse(StringUtils.EMPTY).isEmpty();
} catch (final InvalidPathException e) {
LOGGER.error(e.getMessage(), e);
return false;
}
}
public Resource transform(HttpServletRequest request, Resource resource, ResourceTransformerChain transformerChain) throws IOException {
resource = transformerChain.transform(request, resource);
final String fileName = resource.getFilename();
final String fileExt = FilenameUtils.getExtension(fileName);
switch (fileExt) {
case "js":
case "json":
case "css":
case "html":
log.trace("format {} supported for Text-Injection", fileExt);
return transformText(fileName, resource);
default:
log.trace("unsupported Resource-Type: {}", fileExt);
return resource;
}
}
public void exportImage() {
try {
File file = IOUtility.selectFileToSave(FileType.IMAGE);
if (file != null) {
Rectangle drawingArea = getDrawingArea();
String extension = FilenameUtils.getExtension(file.getName());
if (extension.equals("svg")) {
SVGGraphics2D svgGenerator = IOUtility.getSVGGraphics(drawingArea.getSize());
paintDrawing(svgGenerator, drawingArea.x, drawingArea.y);
svgGenerator.stream(new FileWriter(file));
svgGenerator.dispose();
} else {
BufferedImage bi = new BufferedImage(drawingArea.width, drawingArea.height, BufferedImage.TYPE_INT_RGB);
Graphics g = bi.createGraphics();
paintDrawing(g, drawingArea.x, drawingArea.y);
ImageIO.write(bi, extension, file);
g.dispose();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void generateChannelApk(final File inputFile, final File outputDir, final String channel, final String alias, final Map<String, String> extraInfo) {
final String channelName = alias == null ? channel : alias;
final String name = FilenameUtils.getBaseName(inputFile.getName());
final String extension = FilenameUtils.getExtension(inputFile.getName());
final String newName = name + "_" + channelName + "." + extension;
final File channelApk = new File(outputDir, newName);
try {
FileUtils.copyFile(inputFile, channelApk);
ChannelWriter.put(channelApk, channel, extraInfo);
} catch (IOException | SignatureNotFoundException e) {
e.printStackTrace();
}
}
public boolean accept(File file) {
if (file.isDirectory()) {
return true;
}
String extension = FilenameUtils.getExtension(file.getName());
if (!extension.isEmpty()) {
for (FileType ft : fileType) {
if (ft.contains(extension))
return true;
}
}
return false;
}