Como obter o tamanho de um arquivo em bytes

28/01/2008

2

Pessoal estou com algumas duvias..estou desenvolvendo um software e preciso fazer o seguinte: Ele ira ficar rodando a procura do caminho do pendrive e quando ele achar esse caminho ele vai comparar os arquivos com o do c por byte e se for um arquivo atualizado ele ira copiar para o c:, caso nao seja ele nao copia..detalhe ele nao pode parar, pq sempre que entrar pendrive ele tem que fazer essa verificacao..segue o codigo..alguem pode me ajudar???? Um dos meu problemas e esse que ele copia e fica copiando por cima sem fim...


public static void main(String[] args) throws IOException
{

String diretorioRead = ´J:\\Update´;
String diretorioCopia = ´C:\\Programacao´;
File destino= new File (´J:\\Update´);


while (true) {
if (destino.exists ()){

copyFiles(diretorioRead, diretorioCopia);


// String file2 =´\´C:\\Documents and Settings\\rodrigo.santos\\Meus documentos\\Minhas músicas\\My Playlists\\Rodrigo.wpl\´´;
// Runtime.getRuntime().exec(´C:\\Arquivos de programas\\Windows Media Player\\wmplayer.exe ´+file2);
//
}
}
}

public static void copyFiles(String strPath, String dstPath) throws IOException
{
File diretorio = new File(strPath);
File arquivoDestino = new File(dstPath);
String arquivo = null;

String[] arquivos = diretorio.list();

try {
if (diretorio.isDirectory()) {

arquivoDestino.mkdirs();

arquivos = diretorio.list();


for (int i = 0; i < arquivos.length; i++) {
arquivo = arquivos[i];

System.out.println(arquivo);

String dest1 = arquivoDestino.getAbsolutePath() + ´\\´ + arquivos[i];
String src1 = diretorio.getAbsolutePath() + ´\\´ + arquivos[i];
copyFiles(src1 , dest1);

}
}
else
{
FileInputStream fin = new FileInputStream(diretorio);
FileOutputStream fout = new FileOutputStream (arquivoDestino);
int c;
while ((c = fin.read()) >= 0)
fout.write(c);
fin.close();
fout.close();
}
} catch (FileNotFoundException fnex) {
fnex.printStackTrace();
} catch (IOException ioex) {
ioex.printStackTrace();
}
}


Responder