Saltar para conteúdo


Foto
- - - - -

Caminho usado pelo openFileInput()


  • Por favor inicie sessão para responder
4 respostas a este tópico

#1 ggsd

ggsd

    Membro

  • Membros
  • PipPip
  • 25 mensagens

Mensagem publicada 13 October 2010 - 22:19

Olá amigos,gostaria de ver se alguém sabe como descobrir o caminho que o openFileInput() utiliza. Estou usando-o na seguinte linha:FileInputStream entrada = getBaseContext().openFileInput(arquivo);Na sintaxe dele fala que não se pode usar separadores de path dentro dos "()", porém dessa forma, em compilação, vejo que ele sempre busca pelo seguinte caminho:/data/data/.../files/arquivo (onde arquivo é o que coloquei na linha de comando vista acima)O problema é q por default não existe esse diretório "files" dentro dos arquivos de minha aplicação, sendo que ele só aparece após tentar rodar uma vez o sistema e este dar erro por não encontrar tal diretório (em momento posterior, quando tento criar o "arquivo" lá dentro).Alguém saberia como eu posso ter uma variável String q contenha esse caminho? (No caso o "/data/data/.../diles/")Agradeço a atenção de todos!

#2 PJFonseca

PJFonseca

    Mestre de Android

  • Former Staff
  • PipPipPipPipPipPip
  • 2562 mensagens
  • OnePlus 2

Mensagem publicada 14 October 2010 - 06:13

Esta não é a minha área de acção, mas deixa lá ver se o r3pek pega nisto e diz algo da sua justiça.

#3 TvM

TvM

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1919 mensagens

Mensagem publicada 14 October 2010 - 07:29

FileInputStream in = new FileInputStream("/sdcard/ficheiro.txt");Tem que funcionar direitinho...

#4 gSpot

gSpot

    Membro

  • Membros
  • PipPip
  • 43 mensagens

Mensagem publicada 14 October 2010 - 18:40

Boas ggsd.Tens de ser um pouco mais claro no que diz respeito ao teu problema.Pelo que percebi:1) Se queres saber que path é que é usado por default quando chamas a função getBaseContext().openFileInput(fileName) a resposta é:usa o caminho privado da tua aplicação. Isto é, quando a tua aplicação é instalada no sistema é criada uma pasta que será do género data/data/xxx.mypackagename e portanto é esse o caminho default usado.Só um aparte, não precisas de usar getBaseContext() se estiveres a chamar a função openFileInput() numa Activity. Se não estiveres a usar a função dentro de uma Activity considera usar antes getApplicationContext() em vez de getBaseContext(). E mesmo dentro da Activity há apenas uns casos raros onde se deva usar getBaseContext() ou 'this' em vez de getApplicationContext().Por defeito não existe nenhum ficheiro na pasta data/data/xxx.mypackagename por isso é que talvez estejas a encontrar o erro quando tentas abrir o ficheiro 'arquivo'. Para que o ficheiro 'arquivo' possa ser aberto é preciso primeiro criá-lo.Espero ter ajudado de alguma forma.Cumprimentos,gSpot

#5 ggsd

ggsd

    Membro

  • Membros
  • PipPip
  • 25 mensagens

Mensagem publicada 14 October 2010 - 23:33

Muito obrigado pela participação de todos aqui! Estou em fase final de desenvolvimento de meu trabalho de conclusão de universidade, então não entrei muito nesse assunto, aqui...Assim q trabalhar mais nessa parte escrevo mais nesse tópico, enquanto isso, se alguém mais tivér dicas sobre isso, pode ir colocando aqui que será muito bem vindo!Forte abraço!