Pessoal, quero checar se arquivos no diretório A existem no diretório B.
FileA=newFile("C:DirA");FileB=newFile("C:DirB";File[]arqsA=A.listFiles();File[]arqsB=B.listFiles();for(intx=0;x<arqsA.length;x++){Stringnome1=arqsA[x].getName();for(intw=0;w<arqsB.length;w++){Stringnome2=arqsB[w].getName();if(nome1==nome2)System.out.println("Existe ");elseSystem.out.println("Nao Existe ");}}
Parece que funciona, mas comparar strings com == não dá certo. Use .equals()
J
JBoy_
affff… eu me esforcando aqui pra poder fazer o codigo e cv ja respondeu…
bem de todo jeito eu vou postar pelo esforco… mas vc tem que ter certeza que as duas pastas tem a mesma quantidade de arquivos… eh so colocar um if no comeco e passa direito…
se alguem tiver alguma coisa que diga agora ou cale-se para sempre
J
JBoy_
System.out.println(lista1[i].toString()+": igual a : "+lista2[i].toString());
E ainda fica melhor usando essa linha…
V
Vegetto
Se a idéia for exatamente essa:
quero checar se arquivos no diretório A existem no diretório B.
Esse código não funciona corretamente....
Exemplo
dir A
arq001.txt
arq002.txt
arq003.txt
dir B
arq001.txt
arq002.txt
arq002a.txt
arq002b.txt
arq003.txt
Concorda que os arquivos do dir A estão no dir B ? Então, mas se você ultilizar esse algoritimo a verificação falhará...
[]´s
J
JBoy_
mas ai o cara pode testar a quantidade de arquivos… isso foi so um quebra galho pow da um descoto
V
Vegetto
Hummm, boa idéia hein… estava tentando imaginar em algo aqui, mas isso é de longe muito mais simples! Eu sempre me esqueço do KISS
R
rlicciardo
Valeu, galera.
R
rlicciardo
Valeu, galera.
Ajudaram muito. A idéia é mesmo testar se todos os arquivos do A se encontram no B. O resto é comigo…por enquanto! rs[color=“darkred”][/color]
R
rlicciardo
Só para acrescentar uma coisinha:…
Além de testar se os arquivos existem, eu quero copiá-los para o diretório (fazendo quase um “mirror”). A questão é a seguinte: se o arquivo existe, eu quero copiá-lo mesmo assim (opa, deixa eu dizer que copiar eu sei…rs ), a não ser que o arquivo no diretório de destino esteja sendo editado (aberto).
A questão: como eu sei que o arquivo já está aberto?
cv1
Bem-vindo ao mundo do software multiplataforma!
Nao da pra saber se o arquivo esta sendo editado ou nao. Pra comecar, no Unix isso requer permissoes de root (vide lsof), e em outros sistemas operacionais pode nem ser possivel.
R
rlicciardo
Qual a maneira mais fácil de saber o tamanho do arquivo em bytes?