pessoal estou com um pequeno problema, estou fazendo relatorio em formato de “pizza” com relação ao tamanho usado em disco, o problema é que esta dando o mesmo tamanho para 3 pastas diferentes
Desculpa, na verdade nunca tinha usado esse método, só consultei o javadoc e achei que ele retornaria isso, mas na verdade ele pega o tamanho da partição.
Porém, pesquisando um pouco, parece que a única forma é usar o .length(), que retorna o tamanho de um ARQUIVO. Para saber o tamanho da pasta, deveria ser feito recursivamente para todas as subpastas, veja o código que adaptei do http://www.roseindia.net:
public static long getFolderSize(File folder)
{
long foldersize = 0;
File[] filelist = folder.listFiles();
for (int i = 0; i < filelist.length; i++)
{
if (filelist[i].isDirectory())
{
foldersize += getFolderSize(filelist[i]);
}
else
{
foldersize += filelist[i].length();
}
}
return foldersize;
}
Testei aqui e funcionou… O único problema é que demora alguns segundos.
M
Marcos_Lima
Comentário adicional… Se quer uma boa precisão, divida por [telefone removido], e não por [telefone removido]. Cada kB é 1024 B, e não 1000. Normalmente não tem problema arredondar, mas acaba fazendo uma diferença significativa.
dijava
po muito obrigado !, eu pensei nessa solucao mas achava q ja teria metodo pronto para isso, mas de qualquer forma obrigado !