Muitas vezes quando desejamos efetuar operações sobre arquivos, como por exemplo, copiar um arquivo de um diretório para outro, queremos ter certeza que não estamos sobrescrevendo o novo pelo antigo. Para saber isto temos que comparar as datas do arquivo de origem com o destino.
Vamos ver uma classe que faz esta comparação.
import java.util.*;
import java.io.File;
/**
* compara a data de dois arquivos
* @param arg[0] arquivo de origem
* @param arg[1] arquivo de destino
*/
public class ComparaDatasArquivos {
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("Uso: java ComparaDatasArquivos arquivo1 arquivo2");
System.exit(0);
}
// pega os dois arquivos
File f1 = new File(args[0]);
File f2 = new File(args[1]);
if (!(f1.exists() && f2.exists())) {
System.out.println("Arquivo inexistente! Operação cancelada");
System.exit(0);
}
// pega as datas dos arquivos
long d1 = f1.lastModified();
long d2 = f2.lastModified();
String situacao;
if (d1 == d2)
situacao = "tem mesma data que";
else if (d1 < d2)
situacao = "eh mais antigo que";
else
situacao = "eh mais novo que";
System.out.println(f1.getName() + " " + situacao + " " + f2.getName());
}
}
Compilem e rodem
PS: Notem a construção do if .. else if .. else do final da classe. Quando se tem um comando, não é necessário criar um bloco com { }
Nenhum comentário:
Postar um comentário