Apache Commons IO - FilenameUtils
Fornece método para trabalhar com nomes de arquivo sem usar o objeto de arquivo. Ele funciona em diferentes sistemas operacionais de maneira semelhante. Esta aula resolve problemas ao mudar de uma máquina de desenvolvimento baseada em Windows para uma máquina de produção baseada em Unix.
Declaração de Classe
A seguir está a declaração para org.apache.commons.io.FilenameUtils Classe -
public class FilenameUtils
extends Object
Características
Esta classe define seis componentes em um nome de arquivo. Considere um exemplo de local comoC:\dev\project\file.txt. Então, os componentes são -
- Prefixo - C: \
- Caminho relativo - dev \ project \
- Caminho absoluto - C: \ dev \ project \
- Nome - arquivo.txt
- Nome da base - arquivo
- Extensão - txt
Para identificar um diretório, adicione um separador ao nome do arquivo.
Exemplo de classe FilenameUtils
IOTester.java
import java.io.IOException;
import org.apache.commons.io.FilenameUtils;
public class IOTester {
public static void main(String[] args) {
try {
//Using FilenameUtils
usingFilenameUtils();
} catch(IOException e) {
System.out.println(e.getMessage());
}
}
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));
}
}
Resultado
Irá imprimir o seguinte resultado.
Full Path: C:\dev\project\
Relative Path: dev\project\
Prefix: C:\
Extension: txt
Base: file
Name: file.txt
Normalized Path: C:\commons\lang\project.xml