Hi Delphiianer,
bin wirklich nur ein Hobby-Programmierfan und habe mit Delphi bei Erstellung
einer Andriod App (Andriod Version 11+12) so meine kleinen Schwierigkeiten.
Bei Windows-Desktop-App habe ich diese Probleme nicht so.
Jetzt zu meinen eigentlichen Problem.
Folgender Code:
Delphi-Quellcode:
procedure Texportimport.AddFilesImport(MyImportListbox: TListbox);
Var
SDIm : TStringDynArray;
i,ii : Integer;
LBI: TListBoxItem;
begin//SDA := TDirectory.GetFiles(TPath.GetHomePath + PathDelim,'*.db'); // funktoniert super alle Dateien werden gelistet
//SDA := TDirectory.GetFiles(TPath.GetSharedDocumentsPath + PathDelim,'*.db'); wird in der Listbox nicht gelitet
SDA := TDirectory.GetFiles(TPath.GetDocumentsPath + PathDelim,'*.db'); // wird auch nicht gelistet
for i := Low(SDA) to High(SDA) do
begin
ii := MyImportListBox.Items.Add(ExtractFileName(SDA[i]));
LBI := MyImportListbox.ListItems[ii];
LBI.ItemData.Detail := SDA, [i];
end;
end;
Der Aufruf funktioniert:
Delphi-Quellcode:
Listbox1.Clear;
AddFilesImport(Listbox1);
Mein Problem ist dass die Deateien vom GetSharedDocumentsPath und GetDocumentsPath
eben nicht angezeigt werden.
Mein zweites Problem ist das Kopieren bzw Überschreiben der ausgewählten Datei im GetHomePath.
Hier ein kurzer Ausschnitt:
Delphi-Quellcode:
procedure Texportimport.btn_dbdatei_importClick(Sender: TObject);
var
del_datei1 : String;
begin
del_datei1 := System.IOUtils.TPath.GetHomePath + PathDelim + lbl_loaddatei_import.Text;
begin
PermissionsService.RequestPermissions(['android.permission.READ_EXTERNAL_STORAGE','android.permission.WRITE_INTERNAL_STORAGE'],
procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray)
begin
if FileExists(del_datei1) then
begin
DeleteFile(del_datei1);
TFile.Copy(TPath.GetSharedDocumentsPath + PathDelim + lbl_loaddatei_import.Text, TPath.GetHomePath + PathDelim +lbl_loaddatei_import.Text) ;
//TFile.Copy(TPath.GetDocumentsPath + PathDelim + lbl_loaddatei_import.Text, TPath.GetHomePath + PathDelim +lbl_loaddatei_import.Text) ;
//ShowMessage('Die Spieldaten-Datei wurde importiert!');
end
else begin
TFile.Copy(TPath.GetSharedDocumentsPath + PathDelim + lbl_loaddatei_import.Text, TPath.GetHomePath + PathDelim +lbl_loaddatei_import.Text) ;
//TFile.Copy(TPath.GetDocumentsPath + PathDelim + lbl_loaddatei_import.Text, TPath.GetHomePath + PathDelim +lbl_loaddatei_import.Text) ;
//ShowMessage('Die Spielgemeinschaft-Datei wurde in Dokumenten-Ordner kopiert!');
end;
end);
ShowMessage('Daten wurden importiert.');
end;
exportimport.btn_db_delete.Enabled := False;
exportimport.btn_dbdatei_import.Enabled := False;
end;
Das Kopieren bzw. Überschreiben funktioniert nicht.
Ich bin schon am verzweifeln und seit Stunden bekomme ich keine Lösung hin.
Wer kann helfen?
Vielen Dank im Voraus.
Jmich