Mudar diretorio "corrente"

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 :wink:

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.