| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2003 01:00:44
|
turnes
HelloWorld
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 C rojetoInterface.
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.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2003 07:59:06
|
mlopes
JavaTeenager
![[Avatar]](/images/avatar/c3e26d423e3654fab1f76.jpg)
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
---------------------------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2003 12:19:17
|
turnes
HelloWorld
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2003 15:02:08
|
smota
Moderador
![[Avatar]](/images/avatar/ca9c267dad0305d1a6308d2a0cf1c39c.jpg)
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" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2003 17:16:02
|
turnes
HelloWorld
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;
}
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/03/2003 05:20:55
|
mlopes
JavaTeenager
![[Avatar]](/images/avatar/c3e26d423e3654fab1f76.jpg)
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
---------------------------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/03/2003 00:36:12
|
turnes
HelloWorld
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...
|
|
|
 |
|
|