Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Dateien unter Andriod in Listbox auflisten... (https://www.delphipraxis.net/212363-dateien-unter-andriod-listbox-auflisten.html)

jmich 30. Jan 2023 21:45

Delphi-Version: 11 Alexandria

Dateien unter Andriod in Listbox auflisten...
 
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

Rollo62 1. Feb 2023 06:35

AW: Dateien unter Andriod in Listbox auflisten...
 
Hier ist gut beschrieben woran es überall scheitern kann.
https://github.com/adrianosantostreina/xPlat.OpenPDF
https://stackoverflow.com/questions/...d-6-0/37166704
https://source.android.com/docs/core/storage?hl=de
https://developer.android.com/refere...#getFilesDir()


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz