3
我正在使用Delphi XE5進行Android開發。DELPHI XE5 Android - 從SDCard保存/加載文件
我喜歡將TStringList保存並加載到SDCard上的文本文件。 當我保存TStringList到文件一切正常。保存後,我可以調用LoadFromFile並加載文件。
問題是當我關閉應用程序並再次打開它時。文件不存在? 這是文件的位置FileName := '/data/data/[com.MY.APP]/files/File.txt'
在應用程序的用戶權限= 寫外部stoage:真
我需要將文件保存到另一個文件夾?
Thx尋求幫助。
這在我的代碼和設置。
procedure LOAD;
var
TextFile: TStringList;
FileName: string;
begin
TextFile := TStringList.Create;
try
FileName := Format('%s/File.txt', [GetHomePath]);
if FileExists(FileName) then
begin
TextFile.LoadFromFile(FileName);
Memo1.Lines.Text := TextFile.Text
end
else
ShowMessage('File not exists!');
finally
TextFile.Free;
end;
end;
procedure SAVE;
var
TextFile: TStringList;
FileName: string;
begin
TextFile := TStringList.Create;
try
FileName := Format('%s/File.txt', [GetHomePath]);
TextFile.Text := Memo1.Lines.Text;
TextFile.SaveToFile(FileName);
finally
TextFile.Free;
end;
end;
您應該使用'TPath.Combine()'而不是'Format()'。你確定SDCard路徑是以'/ data/data /'開頭的,而不僅僅是'/ data'嗎?你如何回顧HomePath?另外,爲什麼使用單獨的'TStringList'而不是使用'Memo.Lines.Load ...()'和'Memo.Lines.Save ...()'? –
GetHomePath是System.SysUtils的系統函數 獨立的TStringList僅用於演示。 如果我使用/ data /我得到異常 '無法創建文件「/data/com.debersek.KKP/files/File.txt」。不是目錄'。 – xJernej
你並沒有在SD卡附近的任何地方保存。看到我的答案[這裏](http://stackoverflow.com/a/18857868/62576)。 –