quarta-feira, 4 de janeiro de 2012

Criando diretórios - II

A partir da versão 7 do Java existe um novo pacote denominado java.nio que implementa e melhora várias coisas que já existiam no java.io. Vamos ver o nosso exemplo para criar diretórios:


import java.nio.file.*;
import java.io.IOException;


public class CriaDirectories { 
  
  public static void main(String[] args) {
    // usa o args[0] para indicar o que queremos criar
    Path dir = FileSystems.getDefault().getPath(args[0]); 
try {
 Path p = Files.createDirectories(dir);
 System.out.println(p.toString());
} catch (IOException e) { // createDirectories() gera IOException
 System.out.println(e.toString());  
}
  }
}

Vejam que ele ficou muito diferente do outro. Utilizamos duas novas classes Path e Files. Esta segunda é estática.


Existe também o método createDirectory() que realiza função equivalente a java.io.File.mkdir(). As funções tem a forma genérica de:

  • createDirectory(Path d, FileAttributes<?> attr)
  • createDirectories(Path d, FileAttributes<?> attr)

Ambas retornam Path (como no exemplo acima) indicando o diretório.
O parâmetro d é obviamente o diretório que queremos criar (notem que é um objeto do tipo Path), dai a linha para criação do objeto dir a partir de args[0] no exemplo.


attr é uma lista opcional composta pelo par (String nomeDoAtributo, T valorDoAtributo) que desejamos setar para o diretório.

terça-feira, 3 de janeiro de 2012

Criando diretórios

Na classe java.io.File existem dois métodos para gerar


  • mkdir(): cria um diretório de acordo com o pathname que foi passado
  • mkdir(): cria um diretório de acordo com o pathname que foi passado, incluindo todos os subdiretórios necessários

Ambos os métodos retornam true se conseguiram criar o diretório.

Vamos ver um exemplo. Utilizando mkdir() conseguimos criar um diretório a partir do que estamos ("."), mas não conseguimos criar um diretório e seu subdiretório em um único comando. Já com mkdirs() esta segunda opção também funciona.


segunda-feira, 2 de janeiro de 2012

Apagando arquivos com Java

Continuando a utilizar a classe File temos um outro exemplo bacana e simples... para apagar arquivos.


import java.io.File;
/**
* remove os arquivos listados
* @param arg[0] arquivo ou diretorio a ser removido
* @param arg[1] igual ... 
*/
public class ApagaArquivos { 
  public static void main(String[] args) {
    if (args.length < 1) {
      System.out.println("Uso: java ApagaArquivos {nomeArquivo|nomeDiretorio} ...");
      System.exit(0); // sair
    }


    for(int i=0; i<args.length; i++) {
      File f = new File(args[i]);
      f.delete();
    }   
  }
}


E o resultado é: