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.
[quote=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. [/quote]
Amigo, como ficaria a chamada para System.getenv(“user.home”)???
File c = new File(System.getenv ("user.home"));
long espacolivre = c.getFreeSpace();
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.
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???
public class Teste {
public static void main(String args[]) {
File c = new File(System.getProperty(“user.home”));
System.out.println(c.getFreeSpace());
}
}[/code]
System Properties
"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.
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?