Exception em escrita no txt (Acesso negado) [RESOLVIDO]
8 respostas
W
wellingtonfoz
Pessoal, durante a execução minha aplicação faz uma leitura e, posteriormente, escrita em um arquivo TXT que fica noa mesmo diretório do .JAR. Até aí tudo bem. O problema é:
Enquanto meu .JAR esta na area de trabalho ele faz a leitura e escrita normalmente, mas quando instalo e ele vai pra diretório do tipo C:\Program Files… ele somente le o arquivo TXT mas dá exceção quando vai escrever. A exceção é
Qual o menor trecho de codigo que vc pode representar aqui pra demonstrar o problema?
(Nem todo mundo vai ter acesso a uma maquina rodando Windows, btw)
W
wellingtonfoz
cv:
Qual o menor trecho de codigo que vc pode representar aqui pra demonstrar o problema?
(Nem todo mundo vai ter acesso a uma maquina rodando Windows, btw)
packagebr.edu.anglo.JLABRO.DAO;importjava.io.File;publicclassFileTXT{// Faz a leitura de um arquivo TXT cujo caminho é passado por parâmetropublicstaticStringreadFileTXT(Stringcaminho)throwsException{Scannerinput;Stringtexto="";try{input=newScanner(newFile(caminho));while(input.hasNext()){texto+=input.nextLine()+"\n";}if(input!=null)input.close();}catch(Exceptionex){thrownewException(ex);}returntexto;}// Faz a escrita de um arquivo TXT através do texto e caminho do arquivo passados por parâmetropublicstaticbooleanwriteFileTXT(Stringtexto,Stringcaminho)throwsException{Formatteroutput;try{output=newFormatter(caminho);output.format(texto);if(output!=null)output.close();returntrue;}catch(Exceptionex){thrownewException(ex);}}}
Clica com o direito na sua pasta de arquivos de programas e libera a permissao
pra qualquer usuario poder ler escrecer e editar…
abcs
W
wellingtonfoz
luizfelipetx:
Você não pode escrever nesse diretorio,…
Restrição do windows…
Clica com o direito na sua pasta de arquivos de programas e libera a permissao
pra qualquer usuario poder ler escrecer e editar…
abcs
Isso isso, tudo bem. Mas e se tiver no pc de outra pessoa? O instalador vai instalar lá. Não quero que a pessoa faça esse trabalho todo pra poder ter o programa funcionando certo.
Tem alguma forma de eu liberar a permissão pra um arquivo em específico? Alguma forma de implementar junto à aplicação algo que permita escrita nàquele arquivo??
otaviojava
sobre permissão de diretório varia de máquina para máquina.
você poderia tentar fazer com que o diretório padrão seja a pasta do usuário.
luizfelipetx
Eu ja fiz um programa assim também,
faz o seguinte brother…
instala em um local que voce possa escrever…
ja te digo… o mais pratico que voce pode fazer eh setar em algum
lugar basico … tipo Desktop , ou C:/temp ou C:/seu programa…
Ou usar um instalador do baixaki para criar uma pasta pra vc com seus jar dentro…
o caminho absolito dos arquivos q vc criar… sao /arquivo.txt
abcs
Ironlynx
Isso isso, tudo bem. Mas e se tiver no pc de outra pessoa? O instalador vai instalar lá. Não quero que a pessoa faça esse trabalho todo pra poder ter o programa funcionando certo.
Tem alguma forma de eu liberar a permissão pra um arquivo em específico? Alguma forma de implementar junto à aplicação algo que permita escrita nàquele arquivo??
Siga a dica do amigo acima.Só instale aonde vc possa escrever.Dependendo da empresa, esses locais são beem controlados, e mês passado tive o mesmo problema que vc.Criei uma pasta TEMP para isso.Se não conseguir criá-la, mande uma exceção e nem deixe instalar o programa avisando problemas com permissão.Melhor resolver as restrições primeiro, do que deixar instalar o programa e depois alguem lhe dizer que “tem um bug”!
W
wellingtonfoz
Ironlynx:
Isso isso, tudo bem. Mas e se tiver no pc de outra pessoa? O instalador vai instalar lá. Não quero que a pessoa faça esse trabalho todo pra poder ter o programa funcionando certo.
Tem alguma forma de eu liberar a permissão pra um arquivo em específico? Alguma forma de implementar junto à aplicação algo que permita escrita nàquele arquivo??
Siga a dica do amigo acima.Só instale aonde vc possa escrever.Dependendo da empresa, esses locais são beem controlados, e mês passado tive o mesmo problema que vc.Criei uma pasta TEMP para isso.Se não conseguir criá-la, mande uma exceção e nem deixe instalar o programa avisando problemas com permissão.Melhor resolver as restrições primeiro, do que deixar instalar o programa e depois alguem lhe dizer que “tem um bug”!
Galera,
Minha solução foi instalar o programa normalmente C:\Program files… e criar uma pasta dentro da pasta do usuário logado. Lá eu posso ler e escrever em arquivos.
Pra pegar o diretório do usuário logado no java é só usar o comando: