Erro com JFileChooser  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
turnes
HelloWorld
[Avatar]
Membro desde: 06/03/2003 00:55:21
Mensagens: 14
Offline

O problema é o seguinte:
eu não consigo salvar ou abrir um arquivo (.txt) que não pertence
à pasta na qual foi instalado o meu programa.

Eu estou usando um JFileChooser (dialogo) para escolher
o arquivo, que é retornado pela instrução
"dialogo.getSelectedFile().getAbsoluteFile().getAbsolutePath();"

Alguém sabe no que estou errando? Antes eu estava usando a instrução
"dialogo.getSelectedFile().getName();". Não mudou muito, mas com a
nova instrução eu pude abrir/salvar um arquivo numa pasta acima da
qual o programa está instalado.

Por exemplo, o programa está na pasta CrojetoInterface.
Com o getName() eu só conseguia salvar/abrir um programa
da pasta Interface.
Com o getAbsoluteFile().getAbsolutePath(), eu consigo salvar/abrir
um arquivo da pasta interface e tb da pasta Projeto, mas do diretório
raiz não.

Aguardo um retorno.
mlopes
JavaTeenager
[Avatar]

Membro desde: 18/11/2002 11:01:01
Mensagens: 163
Localização: Alemanha
Offline

Fala.

Bom, vamos ver se eu entendi.

Se vc usar dialogo.getSelectedFile().getAbsoluteFile().getAbsolutePath(), vc vai receber uma string do tipo C:diretorioarquivo.

Eu usaria apenas dialogo.getSelectedFile().getAbsoluteFile().

Se vc quiser savar o arquivo em C: por exemplo:

File novo = new File("c:", oldFile.getName());

Não consigo ver problema algum, de uma olhada na api do File.

[]s

Marco Lopes

----------------------------------------------------------
Pássaro que cedo madruga....
... porém o segundo rato é quem pega o queijo
----------------------------------------------------------
[Yahoo!] [MSN]
turnes
HelloWorld
[Avatar]
Membro desde: 06/03/2003 00:55:21
Mensagens: 14
Offline

Pois é, eu já tinha tentado dessa maneira antes do código que eu citei
e não funcionou tb. Refiz a criação do arquivo com a string "c:', pois não
tinha feito assim antes, mas continuou dando erro.

Obrigada pela ajuda.

mlopes wrote:Fala.

Bom, vamos ver se eu entendi.

Se vc usar dialogo.getSelectedFile().getAbsoluteFile().getAbsolutePath(), vc vai receber uma string do tipo C:diretorioarquivo.

Eu usaria apenas dialogo.getSelectedFile().getAbsoluteFile().

Se vc quiser savar o arquivo em C: por exemplo:

File novo = new File("c:", oldFile.getName());

Não consigo ver problema algum, de uma olhada na api do File.

[]s
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Ola,

O JFileChooser respeita os direitos de acesso do sistema operacional. Para visualizar a pasta pai (acima da sua pasta corrente) você tem que ter no mínimo direito de leitura ... para salvar o de escrita.

No geral não se tem problemas no uso do JFileChooser.

Supondo que esse não seja seu problema ... mande o erro que vocÊ recebe, no mínimo um tratamento do IOException porque ai pode ficar mais fácil.

[]s

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
turnes
HelloWorld
[Avatar]
Membro desde: 06/03/2003 00:55:21
Mensagens: 14
Offline

Esses são os códigos que eu uso pra salvar um arquivo...

public void jmiArquivoSalvarComo_actionPerformed(ActionEvent e) {
String novoArquivo = this.escolhaArquivo("SALVAR");
if(novoArquivo != null) {
try {
nomeArquivo = novoArquivo;
File arqSaída = new File("c:",nomeArquivo);
DataOutputStream saída;
saída = new DataOutputStream(new FileOutputStream(arqSaída));
saída.writeUTF(jtaArea1.getText());
saída.close();
} catch(Exception excecao) {
excecao.printStackTrace();
}
}
}


public String escolhaArquivo (String tipo) {
JFileChooser dialogo = new JFileChooser();
ExampleFileFilter filtro = new ExampleFileFilter();
filtro.addExtension("txt");
filtro.setDescription("Arquivos de Texto");
dialogo.setFileFilter(filtro);
if (tipo == "ABRIR") {
if(dialogo.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
return dialogo.getSelectedFile().getAbsoluteFile().getName();
}
} else {
if (tipo == "SALVAR") {
if(dialogo.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
return dialogo.getSelectedFile().getAbsoluteFile().getName();
}
}
}
return null;
}
mlopes
JavaTeenager
[Avatar]

Membro desde: 18/11/2002 11:01:01
Mensagens: 163
Localização: Alemanha
Offline

Bom,

Novamente, acho que vc deve fazer o seu método retornar File e não String.

Outra coisa, se usário escolhe o arquivo no file chooser, pq vc quer gravá-lo em C:... não faz la muito sentido certo ?

Qual é o erro q vc recebe ?

[]'s

Marco Lopes

----------------------------------------------------------
Pássaro que cedo madruga....
... porém o segundo rato é quem pega o queijo
----------------------------------------------------------
[Yahoo!] [MSN]
turnes
HelloWorld
[Avatar]
Membro desde: 06/03/2003 00:55:21
Mensagens: 14
Offline

Eu mudei o tipo de arquivo que eu queria gravar/ler e funcionou.
Pra mim foi até melhor, porque agora estou gravando/lendo arquivos
txt puros.

Obrigada pelas idéias...
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team