ola a todos!! eh uma duvida meio estupida, mas como eu faco para alterar o diretorio atual? em outras palavras, como eu faco para alterar o diretorio que eu estou trabalhando para algum outro? tentei alterar a propriedade user.dir mas nao funciona… alguem?
Acho que não tem como fazer isso. O que pretende?
Não há exatamente o conceito de um “diretório corrente” em Java, mas algumas funções realmente obedecem a “user.dir” e outras não.
Por exemplo, File.getCanonicalPath(), se não me engano, lê o valor de “user.dir”, mas new FileOutputStream() não faz isso. Por esses problemas é melhor não supor que seja possível setar o diretório corrente. (Até dá para obter o diretório corrente se você pegar (new File(".")).getCanonicalPath())
Uê, não entendi. Como assim, não faz isso?
…
Brincando um pouco com isso:
System.setProperty("user.dir", "C:");
File f = new File("test");
f.createNewFile();
System.out.println(f.getAbsolutePath());
Cria um arquivo no diretório onde executo o comando java(C:/jbproject/playround ou seja, o valor do user.dir antes da chamada ao System.setProperty) mas imprime “C:/test”.
Agora entendi. Que loucura.
-Sami
java.io: Add chdir or equivalent notion of changing working directory
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4045688
Este RFE é de abril de 1997 mas ainda não foi encerrado. Talvez eles pensem em encerrar isso por volta de 2017
Unable to change current directory
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4030989
Esse bug foi rejeitado (Closed, not a bug)
ahahahaha…
Bom… O Sun deve saber melhor do que a gente.
Valeu, thingol.