Pegar um caminho absoluto( workspace do eclipse). java.io

Olá amigos… gostei do novo layout do GUJ. Então, estou usando java.io para trabalhar com diretórios, arquivos… etc. No entanto, precisaria saber se tem como eu pegar o caminho do workspace que o eclipse, ou usuario escolheu e armazenar em uma variavel. O metodo que estou usando, esta usando um caminho fixo.

No exemplo abaixo estou criando uma pasta e um arquivo dentro do caminho que passei.

public void gerarPacotesCliente() {
		try {                                -- caminho fixo que eu passei
			File arq = new File("C:/FDDK/Workspace/Extratores/src/" + cliente);	
                                                       -- aki eu queria passar apenas o caminho que  foi definido quando instalou o eclipse pela primeira vez
			arq.mkdirs();
			arq.listFiles();
			File arquivo = new File("C:/FDDK/Workspace/Extratores/src/" + cliente + "/" + "BI.java"); 			
			if (!arquivo.exists())
				arquivo.createNewFile();
			writer = new PrintWriter(new FileWriter(arquivo));
			escreverBI(null);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

Acredito não ter sido muito claro,contudo, espero por sugestões.

File f = new File("resources/arquivo.txt"); // root (workspace) / resources / arquivo.txt
File f = new File("/resources/arquivo.txt");  // %User.Home% / resources / arquivo.txt

:wink:

Ola. Muito obriado pela resposta, agora o me diga o que significa aquele “resources”?

Só um exemplo de pasta… pode ser qualquer coisa.

[quote=MarceloS] File f = new File("resources/arquivo.txt"); // root (workspace) / resources / arquivo.txt File f = new File("/resources/arquivo.txt"); // %User.Home% / resources / arquivo.txt

:wink: [/quote]

aqui não rolou não…ele não acha o caminho da workspace sozinho… :frowning:

Se você colocar só assim :

File file = new File("Arquivo.txt");

Ele vai criar o arquivo dentro da pasta do seu projeto, no meu caso ficaria assim:

D:\workspace\Evandro\Arquivo.txt

Para mim colocar dentro da pasta onde fica a classe, não entendi se é isso que vc quer, foi o que entendi.
O endereco da minha pasta é: D:\workspace\Evandro\bin\exercicio eu teria que fazer assim:

File file = new File("bin/exercicio/Text.txt");

Se é isso que vc queria, espero ter ajudado!

Enadrov … só q quando eu dou o commando pra criar o arquivo, ele não consegue achar o caminho… eu tive que criar uma classe de “configuração” pra setar os valores…
infelizmente não rolou usar um “path” dinamico…

Talvez uma alternativa para pegar o caminho dinâmico seria:

String caminhoAtual = new File("").getAbsolutePath();

depois você pode concatenar com o nome do arquivo para ter o caminho completo

Um pequeno exemplo:

String caminhoAtual = new File("").getAbsolutePath();
String novoArquivo = caminhoAtual + File.separator  + "arquivo.txt";
new File(novoArquivo).createNewFile();

[quote=carolino]Talvez uma alternativa para pegar o caminho dinâmico seria:

String caminhoAtual = new File("").getAbsolutePath();

depois você pode concatenar com o nome do arquivo para ter o caminho completo

Um pequeno exemplo:

String caminhoAtual = new File("").getAbsolutePath(); String novoArquivo = caminhoAtual + File.separator + "arquivo.txt"; new File(novoArquivo).createNewFile(); [/quote]

showwwwwwwwww finalmente alguma dica que funcionou do jeito que eu queria :smiley: obrigado carolino o/*

Não sei se é isso, mas sugiro que você olhe o que indico abaixo:

http://docs.oracle.com/javase/7/docs/api/

java.lang.System

Class System

getProperties() <-- com o parâmero: (user.dir) = User’s current working directory.

Abs.

[quote=joagostini]Não sei se é isso, mas sugiro que você olhe o que indico abaixo:

http://docs.oracle.com/javase/7/docs/api/

java.lang.System

Class System

getProperties() <-- com o parâmero: (user.dir) = User’s current working directory.

Abs.[/quote]

poxa isso msm :smiley: assim fica melhor… não fica com cara de “gambiarra” ahuahuahua :smiley: