Tô fazendo um prog q precisa ler o conteúdo do cd e queria mostrar o andamento dessa leitura através de uma JProgressBar, mas preciso definir o valor máximo, q seria o tamanho do cd, mas não funciona usando o método length () da classe File.
Se vc vai fazer o CD, certamente vc já sabe o tamanho total dos arquivos.
Mas se quiser fazer as coisas dinamicamente, terá que percorrer a hierarquia de diretorios, pegar arquivo por aquivo usando File, e pegar o tamanho de cada um e colocar em um totalizador (aqui entra recursividade para navegar nos diretórios mais facilmente).
[]s, Welington B. Souza
wbsouza
Vai aí um trechinho de codigo
public static int getFolderSize(String path) {
File folder = new File(path);
int size = 0;
if (folder.isDirectory()) {
String[] dirList = folder.list();
if (dirList != null) {
for (int i = 0; i < dirList.length; i++) {
String fileName = dirList[i];
File f = new File(path, fileName);
if (f.isDirectory()) {
String filePath = f.getPath();
size += getFolderSize(filePath);
continue;
}
size += f.length();
}
}
}
return size;
}
Boa diversão
[]s, Welington B. Souza
cv1
O problema eh que se vc vai fazer isso, especialmente com um drive de CD, que tem um seek time bem altinho, vc vai perder alguns minutos, dependendo da quantidade de arquivos…
Deve ter algum jeito melhor, vou dar uma pesquisada e volto aqui