AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Android 11+: Verzeichnis auslesen

Ein Thema von amigage · begonnen am 8. Feb 2022
Antwort Antwort
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#1

Android 11+: Verzeichnis auslesen

  Alt 8. Feb 2022, 16:10
Hallo,

irgendwie komme ich nicht weiter. Ich möchte ab Android 11 eine Datensicherung meiner App-Daten einlesen.
Der Nutzer gibt der App den Zugriff auf ein Verzeichnis, von dem ich die Liste der Dateinamen haben möchte, um sie dann einzeln ins App Verzeichnis kopieren zu können.

Delphi-Quellcode:
  procedure GetFolderAccess(StartUri: JNet_Uri);
  var
    Intent: JIntent;
  begin
    Intent := TJIntent.Create;
    Intent.setAction(TJIntent.JavaClass.ACTION_OPEN_DOCUMENT_TREE);
    Intent.putExtra(TJDocumentsContract.JavaClass.EXTRA_INITIAL_URI, JParcelable(StartUri));

    MainActivity.startActivityForResult(Intent, cDirectory_Tree_Ac);
  end;
sowie
Delphi-Quellcode:
procedure TForm1.OnActivityResult(RequestCode, ResultCode: Integer; Data: JIntent);
var
  docUri, Uri: JNet_Uri;
  TheFolder : JFile;
  TheFFiles : TJavaObjectArray<JFile>;
  i : integer;
begin
  Memo1.Lines.Clear;
  if ResultCode = TJActivity.JavaClass.RESULT_OK then
  begin
    // Result data user selected
    // contains a URI for the document or directory.
    Uri := nil;
    if Assigned(Data) then
    begin
      if (Data = nil) then
      begin
        Memo1.Lines.Add('Uri nicht abgerufen!');
        exit;
      end;
      UriCan := Data.getData;

      if RequestCode = cDirectory_Tree_Ac then
      begin
        myToast('Berechtigung zum Zugriff auf Elemente im Verzeichnis ' + JStringToString(UriCan.getPath{ toString}) + ' erteilt.');

        docUri := DocumentsContract.JavaClass.buildDocumentUriUsingTree(Uri, DocumentsContract.JavaClass.getTreeDocumentId(Uri));
        memo1.Lines.Add(JStringToString(docUri.toString));
        
        TheFolder := TJFile.JavaClass.init(docUri.toString);
        TheFFiles := TheFolder.listFiles;


        for i := 0 to TheFFiles.Length-1 do <<<=============================== hier steigt die App aus
           memo1.Lines.Add(i.ToString); //(TheFFiles.Items[i].toString));
      end;
    end;
  end;
end;
In der Schleife steigt die App aus. Wie kann ich durch die gefundene Dateiliste gehen, um die einzelnen Dateinamen zu erhalten?

Danke.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 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