Diretorio Fixo no Android com Delphi Xe5

Delphi

21/11/2013

Bom, estou precisando pegar um arquivo em uma determinada pasta FIXA dentro android...

EX:

C:\teste\teste.txt (no win32)

Quero fazer a mesma coisa no android..

Vlw...
Graziani

Graziani

Curtidas 0

Respostas

Graziani

Graziani

21/11/2013

Alguem ????
GOSTEI 0
Augusto Angelim

Augusto Angelim

21/11/2013

Alguem ????



Vi um exemplo assim... funciona direitinho!

Use TStringList, with the TStringList.loadFromFile(file);

procedure TForm1.Button1Click(Sender: TObject);
var
   TextFile : TStringList;
   FileName : string;
begin

try
  textFile := TStringList.Create;
  try
  {$IFDEF ANDROID}//if the operative system is Android
     FileName := Format('%smyFile.txt',[GetHomePath]);
  {$ENDIF ANDROID}

  {$IFDEF WIN32}
     FileName := Format('%smyFile.txt',[ExtractFilePath(ParamStr(0))]);
  {$ENDIF WIN32}

  if FileExists(FileName) then begin
     textFile.LoadFromFile(FileName); //load the file in TStringList
     showmessage(textfile.Text);//there is the text
  end
  else begin showMessage('File not exists, Create New File');

     TextFile.Text := 'There is a new File (Here the contents)';
     TextFile.SaveToFile(FileName);//create a new file from a TStringList

  end;
  finally
     textFile.Free;
  end;
except
  on E : Exception do ShowMessage('ClassError: '+e.ClassName+#13#13+'Message: '+e.Message);
   end;
end;





Considerando que:

uses
  SysUtils;


var
  AppPath, CardPath: string;


  AppPath := TPath.GetHomePath;
  CardPath :- TPath.GetDocumentsPath;
...



e que o TPath tem:

GetTempPath
GetPublicPath
GetCameraPath
GetMusicPath
GetDownloadsPath

; )
GOSTEI 0
Graziani

Graziani

21/11/2013

Primeiramente obrigado pela ajuda, mas não funcionou....

Preciso pegar um arquivo em uma pasta especifica...


Se voce tiver mais uma ideia...

Obrigado
GOSTEI 0
Marcelo Santos

Marcelo Santos

21/11/2013

Já deve ter resolvido. Mas se não resolveu:
Você pode verificar o caminho com o Astro File Manager ou ES File Share, lá tem a opção exibir caminho completo.
É importante que o arquivo não esteja salvo no "c:" do android, o " / "
Pois não vai ter direito de acesso...um exemplo de caminho que utilizei: "/storage/sdcard0/mercado/"
GOSTEI 0
Jonas Silva

Jonas Silva

21/11/2013

procedure TForm.Button1Click(Sender: TObject);
var
arquivo : TextFile;
sl : TStringList;
caminhodoarquivo : String;
begin
caminhodoarquivo := System.IOUtils.TPath.GetHomePath + PathDelim +'configIni.txt';
sl := TStringList.Create;
AssignFile(arquivo,caminhodoarquivo);
Rewrite(arquivo);
Writeln(arquivo, Trim(EditIpLocal.Text));
Writeln(arquivo, Trim(EditIpExterno.Text));
Writeln(arquivo, Trim(EditSenha.Text));
Writeln(arquivo, Trim(EditPorta.Text));
Writeln(arquivo, Trim(EditUsuario.Text));
CloseFile(arquivo);

if FileExists(caminhodoarquivo) then
begin
try
sl.LoadFromFile(caminhodoarquivo);

EditIpLocal.Text := sl.Strings[0];
EditIpExterno.Text := sl.Strings[1];
EditSenha.Text := sl.Strings[2];
EditPorta.Text := sl.Strings[3];
EditUsuario.Text := sl.Strings[4];

DataModule.SQLConnection1.Connected := False;
DataModule.SQLConnection1.Params.Values['HostName'] := EditIpLocal.Text;
DataModule.SQLConnection1.Params.Values['Password'] := EditSenha.Text;
DataModule.SQLConnection1.Params.Values['Port'] := EditPorta.Text;
DataModule.SQLConnection1.Params.Values['UserName'] := EditUsuario.Text;
DataModule.SQLConnection1.Connected := true;


except
try
DataModule.SQLConnection1.Params.Values['HostName'] := EditIpExterno.Text;{IP DE CONEXAO REMOTA}
DataModule.SQLConnection1.Connected := true;
except
Showmessage('Impossível de conectar verifique os dados de conexão.')
end;
end;
end;

if DataModule.SQLConnection1.Connected then
ShowMessage('Conexão feita com sucesso.');



end;
GOSTEI 0
POSTAR