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