filename from Uri lazarus / 43-Android ---------------------------------------------------------------------- biologic · 2025-03-22 05:56 How can I get the filename of a treeUri object? I want to load a BGRABitmap with the data of the chosen file. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TAndroidModule1.AndroidModule1ActivityResult(Sender: TObject;  requestCode: integer; resultCode: TAndroidResult; intentData: jObject);var  treeUri: jObject;  arrayData: TDynArrayOfString;  listData: TstringList;  count, i: integer;  contentText: string;   outFileName, outUriValue: string;begin   if resultCode = RESULT_OK then   begin       if intentData = nil then      begin         ShowMessage('Sorry... data nil received...');         Exit;      end;       treeUri:= IntentManager1.GetDataUri(intentData);       //ShowMessage('dataUri = ' + IntentManager1.GetDataUriAsString(intentData) );       if treeUri = nil then      begin         ShowMessage('Sorry... Uri nil received...');         Exit;      end; //      ShowMessage('treeUri =' +Self.UriToString(treeUri));       //Self.TakePersistableUriPermission(treeUri); //so, you don't need a new request for user when app resume from background       if requestCode = 111 then  //create file      begin         ShowMessage('Success! Created File!');          //Add content...       Self.SaveTextToUri('1. Hello Android 11 World!' + sLineBreak, treeUri);      end;       if requestCode = 222 then  //open file      begin          ShowMessage('Success! Open File!');          //contentText:= Self.GetTextFromUri(treeUri); //get content         //ShowMessage(contentText);          //Add content..         //Self.SaveTextToUri(contentText + '2. New Text Content!' + sLineBreak , treeUri);           // or....         //IntentManager1.SetAction(iaView);         //IntentManager1.SetDataAndType(treeUri, 'text/plain');         //IntentManager1.StartActivity();          //or if mimetype is "image/*"         ImageView1.SetImage(Self.GetBitmapFromUri(treeUri));          width:=imageview1.GetBitmapWidth;         height:=imageview1.GetBitmapHeight;          bmp := TBGRABitmap.Create(width, Height);         bmp.LoadFromFile(Self.UriToString(treeUri));         //ShowMessage('LoadFromFile : treeUri =' +Self.UriToString(treeUri));          Self.Refresh;                   //or         //IntentManager1.SetAction(iaView);         //IntentManager1.SetDataAndType(treeUri, 'image/*');         //IntentManager1.StartActivity();       end;       if requestCode = 333 then  //open directory tree      begin         arrayData:= Self.GetFileList(treeUri, '.txt'); //filter by file extension         //or        //arrayData:= Self.GetFileList(treeUri); // no filter       listData:= Self.ToStringList(arrayData, ' ');         count:= listData.Count;        for i:= 0 to count-1 do        begin          listData.GetNameValue(i , outFileName, outUriValue);          //ListView1.Add(outFileName);          //ListView1.SetItemTagString(outUriValue, i); //hiden information      end;         SetLength(arrayData, 0);        listData.Free;       end;   end;end; ---------------------------------------------------------------------- biologic · 2025-03-23 00:45 OK, Found a solution : function GetBitmapFromUri