Estou com uma duvida em como descobrir o espaço em disco em linux.
Tenho um metodo que me retorna o espaço, mas em windows:
public String CalculaEspaco(String unidade) {
//VERIFICA ESPACO EM DISCO
File c = new File(unidade);
long espacolivre = c.getFreeSpace();
espacolivre=(int)(espacolivre/(1024*1024));
DecimalFormat aproximador = new DecimalFormat( "0.00" );
return aproximador.format(espacolivre);
}
Agora gostaria de pegar o espaço em disco para linux. Alguém poderia ajudar?
Desde já agradeço...
O código é quase o mesmo, só que em vez de você passar “C:”) , você tem de passar um diretório - é que o espaço livre do Linux depende do diretório que você está passando. Por exemplo, se você passar “/home” , você pode ter um resultado diferente de se você passar “/usr”.
Na maior parte dos usos, eu passaria o diretório do usuário (System.getenv (“user.home”) , que é onde você põe seus dados.
P
Popeye12345
Opa cara,
Nunca fiz isso, mas deixa eu te perguntar: Não é a mesma coisa que chamar uma aplicação externa e como aplicação colocar:
df-h/unidade
Acho que dá a mesma coisa. Tenta ai.
P
Popeye12345
Esquece o que postei, foi viagem feia.
Ê sono que tô.
C
cego
thingol:
O código é quase o mesmo, só que em vez de você passar “C:”) , você tem de passar um diretório - é que o espaço livre do Linux depende do diretório que você está passando. Por exemplo, se você passar “/home” , você pode ter um resultado diferente de se você passar “/usr”.
Na maior parte dos usos, eu passaria o diretório do usuário (System.getenv (“user.home”) , que é onde você põe seus dados.
Amigo, como ficaria a chamada para System.getenv(“user.home”)???
A diferença do linux pro windows é que o Windows o nome é que nao é C: ou D:…é hd0 ou hd1…caso voce tenha dois hds ficaria…
hda0 hda1, hdb0 hdb1…ou se voce tem uma partição só da até para fazer direto… filesystem, tente destas formas talvez resolva. espero ter ajudado com alguma coisa.
C
cego
Tentei usar o codigo das duas formas mas deu erro: Java.Lang.NullPointerException
public class EspacoDisco {
public String CalculaEspaco(String unidade) {
//VERIFICA ESPACO EM DISCO
File c = new File(System.getenv("user.home"));
long espacolivre = c.getFreeSpace();
espacolivre=(int)(espacolivre/(1024*1024));
DecimalFormat aproximador = new DecimalFormat( "0.00" );
return aproximador.format(espacolivre);
}
}
Na segunda Maneira usei File c = new File("/var");
Mas também não deu certo…
Se eu usar File c = new File(“hda0”); daria certo???
"user.dir" User's current working directory
"user.home" User home directory
Se não me engano o System.getenv() é utilizado para pegar o valor da variavel de ambiente.
Vinicius_Sartori
no caso se ficar especifica a saida da partição isto mataria totalmente a portabilidade do sistema…
Luiz LG eu sei que o tópico não foi aberto por mim, mais pelo que eu entendi este seu código puxa direto da pasta do usuário independente do nome da partição e do sistema?