Caminho no "File"

7 respostas
L.Bach

Pessoal, bom dia.

Tenho uma função que retorna um objeto File.
Necessito pegar deste File apenas o caminho, desconsiderando o arquivo. Por exemplo, de “C:\teste.txt”, preciso capturar apenas o “C:”.

getPath(), getCanonicalPath() e getAbsolutePath() retornaram o nome do arquivo junto.

Alguém sabe como resolver?

Obrigado.

7 Respostas

Jair_Rillo_Junior

Eu particularmente não lembro um método que faça isso (pois acho que nunca precisei), mas após retornar uma String com o caminho completo (mesmo com o nome do arquivo junto), você pode trabalha-la (Usandos a API String) e capturar apenas a parte que você quer.

L.Bach

Valeu, Jair.

Obrigado pela dica.

R

Bom dia L.Bach,
Acredito que um substring ajudaria você, fiz um teste rápido aqui de uma olhada.

public class FileTest {

	private static String path1 = "C:/Test/Guj/";
	private static String path2;
	
	public static void main(String[] args) {
		
		path2 = path1.substring(0,3);
		System.out.println(path2);

	}

}

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

Abraço..t+

[]'s
Razec

M

Pode ser feito algo como:

// Recebe o arquivo de um método qualquer...
		File file = objetoQualquer.getFile();
		// Pega o caminho completo do arquivo
		String caminhoCompleto = file.getAbsolutePath();
		/* Pega o indice da última barra invetida e adiciona
		 * um para que a barra seja incluída na substring. Se
		 * o índice da barra for -1, significa que não foi
		 * encontrado aquele caracter (o sistema operacional deve
		 * ser outro que não Windows. Então, pegamos o índice da
		 * barra comum (e não da invertida).
		 */
		int indiceBarra = caminhoCompleto.lastIndexOf("\") + 1;
		if (indiceBarra == 0) {
			indiceBarra = caminhoCompleto.lastIndexOf("/") + 1;
		}
		// Basta pegar o substring com o caminho da pasta.
		String caminhoPasta = caminhoCompleto.substring(0, indiceBarra);
L.Bach

Razec,

Dessa forma, sempre receberei fixo a raiz, e o que busco, na verdade, é o caminho inteiro até chegar ao arquivo.

Marcos Biscaro,

Exatemente isso!

Valeu pessoal
Abraço

juliano_FRG

Pegue o diretório superior do arquivo através do método getParent(), por exemplo:

public static void getPath() { File f = new File("D:\JULIANO\Mapa 03.pdf"); System.out.println("isFile: " + f.isFile()); System.out.println("getPath: " + f.getPath()); System.out.println("getParent: " + f.getParent()); }

L.Bach

Juliano,

Valeu, fera.
Abraço

Criado 26 de dezembro de 2008
Ultima resposta 26 de dez. de 2008
Respostas 7
Participantes 5