Cursos / Informática para Internet / Desenvolvimento Desktop / Aula
Pode-se apagar arquivos, diretórios ou links. Com links simbólicos, apenas o link é apagado e não o arquivo cujo link aponta. Em se tratando de diretórios, o mesmo deve estar vazio, ou a operação falha.
A classe Files provê dois métodos de remoção. O delete(Path) apaga o arquivo ou dispara uma exceção se a operação falhar. Por exemplo, se o arquivo não existir, uma exceção NoSuchFileException é disparada. De qualquer forma, é possível capturar a exceção e saber por que a operação de remoção falhou, como mostra o trecho de código a seguir:
O método deleteIfExists(Path) também apaga o arquivo, mas, se o arquivo não existir, nenhuma exceção é disparada.
Pode-se copiar um arquivo ou diretório através do método copy(Path, Path, CopyOption...). A cópia falha se o arquivo destino já existir, a menos que a opção REPLACE_EXISTING seja especificada.
Diretórios podem ser copiados, mas os arquivos dentro do diretório não o serão. Dessa forma, os novos diretórios serão vazios mesmo que os originais contenham arquivos.
Quando se copia um link simbólico, o arquivo apontado pelo link é copiado. Se a intenção for copiar o link em si e não o conteúdo do link, deve-se especificar a opção NOFOLLOW_LINKS ou REPLACE_EXISTING.
Esse método (copy(Path, Path, CopyOption...)) recebe parâmetros onde os seguintes argumentos são suportados:
O trecho de código a seguir mostra como o método copy deve ser utilizado:
Files.copy(source, target, REPLACE_EXISTING);
Onde os dois primeiros argumentos são o arquivo de origem e o de destino, respectivamente, ambos representados por objetos da classe Path. O terceiro argumento é um atributo que caracteriza a maneira como a operação vai ser realizada, nesse caso, executando a cópia mesmo que o arquivo de destino exista.
Para que esse método funcione com os atributos, é necessário importar o pacote java.nio.file.StandardCopyOption.*.
Versão 5.3 - Todos os Direitos reservados