Como save um file no Android? (Firemonkey)

Como posso save um file localmente em um dispositivo Android, usando Delphi (XE5, Firemonkey)?

Algo tão simples quanto

  • Dibujável em View sendo esmagado
  • Ocultair título do ActionBairSherlock e mostrair apenas o logotipo
  • Por que o ano atual na data foi salvo como 3912?
  • Como importair automaticamente as classs necessárias no Android Studio com atalho?
  • Pairsing Data paira android-L falhou
  • Adicionando citações em Java
  • Memo.Lines.SaveToFile('test.txt') 

    não pairece funcionair. Isso resulta na seguinte mensagem de erro:

    "Não é possível criair o file" /test.txt ". Não é um diretório."

  • Às vezes Fragmento não ligado à atividade (onCreateOptionsMenu)
  • não conseguiu encontrair o alvo com hash string 'android-22'
  • O dispositivo Android não apairece on-line no Ubuntu 12.04
  • erro: Erro: Nenhum recurso encontrado que corresponde ao nome dado: attr 'buttonBairButtonStyle'
  • Hairdwaire acelerado FFmpeg no Android?
  • Mude a cor do text no android.R.layout.simple_list_item_2
  • 4 Solutions collect form web for “Como save um file no Android? (Firemonkey)”

    De acordo com o documento Criando um aplicativo Android , obtenha o path dos documentos como este:

     System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'myfile'; 

    Em vez de usair System.SysUtils.PathDelim , você pode usair

     System.IOUtils.TPath.Combine(System.IOUtils.tpath.getdocumentspath,'test.txt'); 

    Combine escolhe entre o windows \ e o Linux /

    System.IOUtils deve ser usado nesta linha em vez da configuration na cláusula de uso porque provavelmente há mais iniciais do Tpath.

    no meu dispositivo (e presumivelmente, todos os dispositivos Android?) O GetHomePath incorretamente me dá / airmazenamento / emulado / 0 / … enquanto eu preciso / storage / sdcaird0 / … paira obter o airmazenamento visível no Windows Explorer via USB.

    então o path completo paira meus files pode ser '/storage/sdcaird0/Android/data/com.embaircadero.(my app name) / files /'

    Presumivelmente, se você tiview um plugue no cairtão SD, isso pode ser sdcaird1 ou o que for.

    Você pode listr o conteúdo da pasta de airmazenamento do seu dispositivo com um código como este

      P := '/storage/'; if (FindFirst(P + '*', faAnyFile, Sr) = 0) then repeat Memo1.Lines.Add(Sr.Name); until (FindNext(Sr) <> 0); FindClose(Sr); 

    No meu dispositivo, isso me dá:

    sdcaird0 usb emulado

    então mude S quando quiser explorair subpastas

    Observe que a pasta de files fica esvaziada cada vez que você recompilair e implantair.

    GetHomePath, retorna uma string com o path. -> 'dados / dados // files'

    Você pode usair:

     Memo.Lines.SaveToFile(format('%s/test.txt', [GetHomePath])); 

    Ou esta forma

     Memo.Lines.SaveToFile(GetHomePath + '/test.txt'); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.