Manipulando Arquivos

Galera,

Li o toturial do GUj sobre manipulação de arquivos, mas fiquei com algumsa dúvidas.

  1. Não consegui apontar para o diretório correto.

Minha estrutura de diretório é:

C:
tomcat
webapps
minhaAplicacao
ARQUIVOS
web-inf
classes

Já havia conseguido gravar um arquivo passando o caminho completo (c:/tomcat/webapps/…), mas não posso trabalhar assim porque quando eu for hospedar o meu site, provavelmente não terei o camonho completo.

Testei, na minha classe que grava esses arquivos, algumas situações como:
…\ARQUIVOS/mensagem.txt
…\ARQUIVOSmensagem.txt
…/ARQUIVOS/mensagem.txt
e outras

Mas não consegui encontrar o caminho.

Se alguém puder me mostrar este caminho, tanto para windows como para linux, ficarei muito grato.

  1. Desenvolvo o meu site no windows, mas vou hospela-lo no linux

Alguém pode me dizer como posso descobrir em qual sistema operacional a minha classe está rodando?

Preciso saber o sistema operacional, para preparar código que atribui o caminho de gravação do arquivo (diretório), tanto para o windows como para o linux.

Obrigado,

O WEB-INF nã deveria estar dentro do diretório ARQUIVOS. web-inf deve ficar logo abaixo do nome do seu contexto:
c:\tomcat\webapps\minhaaplicacao\WEB-INF

O diretório ARQUIVOS pode ficar logo abaito de “minhaaplicacao” também, você usa mapeamento do tipo:
/minhaaplicacao/ARQUIVOS/algumjsp.jsp
ou qualquer outro arquivo

Está exatamente assim, o problema é que o texto não saiu exatamente como eu digitei.

Os diretórios estão assim:

C:
—tomcat
------webapps
---------minhaAplicacao
------------ARQUIVOS
------------web-inf
---------------classes

Ou seja, os diretórios minhaaplicacao e web-inf estão no mesmo nível, embaixo do minha aplicação.

Já testei o que você indicou, mas não deu certo.

Mas já vi que eu terei problemas maiores. Estou hospedando o meu site na LocaWeb, e fui informado que o caminho completo do meu diretório é:
“/home/minhaaplicacao/ARQUIVOS/xxx.txt”

Como posso implementar isso, se eu desenvolvo com o windows?

Alguém tem um exemplo de como indicar o caminho acima no linux?

Abraços,

ERRATA

Ou seja, os diretórios ARQUIVOS e web-inf estão no mesmo nível, embaixo do minhaAplicação.

Cara, qual erro que está dando? Não compila? Ou no runtime?

E quanto à sua segunda dúvida, dê uma olhadinha na classe System. Alguns métodos interessantes:
System.getProperty( “os.name” )
System.getProperty( “path.separator” )

:smiley:

Você também pode usar a constante File.pathSeparator pra isso. :wink:

Mais info:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html

[]'s

O Lipe perguntou qual o erro que está dando.

O erro é:

java.io.FileNotFoundException: ARQUIVOSxxx.txt (The system cannot find the path specified)

Esta erro aconteceu com todas as formas que eu tentei gravar o arquivo.

…ARQUIVOS/mensagem.txt
…ARQUIVOSmensagem.txt
…/ARQUIVOS/mensagem.txt
e outras

Abraços