Untitled

 avatar
user_6919294
pascal
4 months ago
2.3 kB
4
Indexable
{ 

Poniżej znajdziesz przykład, który pokazuje, jak wyświetlić zawartość katalogu Download na Androidzie:

1. Wyświetlanie plików w liście (TListBox)
Ten przykład zakłada, że masz TListBox o nazwie ListBox1 na formularzu.

}
uses
  System.IOUtils, System.SysUtils, FMX.Dialogs;

procedure TForm1.LoadFilesFromDownload;
var
  DownloadPath: string;
  Files: TArray<string>;
  FileName: string;
begin
  // Ścieżka do katalogu "Download"
  DownloadPath := TPath.Combine(TPath.GetSharedDownloadsPath, '');
  
  // Sprawdzenie, czy katalog istnieje
  if not TDirectory.Exists(DownloadPath) then
  begin
    ShowMessage('Katalog Download nie istnieje!');
    Exit;
  end;

  // Pobranie listy plików
  Files := TDirectory.GetFiles(DownloadPath);
  
  // Wyczyść listę
  ListBox1.Clear;

  // Dodanie plików do listy
  for FileName in Files do
  begin
    ListBox1.Items.Add(TPath.GetFileName(FileName)); // Nazwa pliku bez ścieżki
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  LoadFilesFromDownload;
end;

{
    Otwieranie pliku
    Do otwierania plików możesz użyć TFileStream lub systemowego intentu (Android). Przykład odczytu zawartości tekstowego pliku:
}

uses
  System.Classes;

procedure TForm1.OpenSelectedFile;
var
  SelectedFile: string;
  FilePath: string;
  FileContent: TStringList;
begin
  if ListBox1.ItemIndex = -1 then
  begin
    ShowMessage('Wybierz plik z listy!');
    Exit;
  end;

  SelectedFile := ListBox1.Items[ListBox1.ItemIndex];
  FilePath := TPath.Combine(TPath.GetSharedDownloadsPath, SelectedFile);

  if not TFile.Exists(FilePath) then
  begin
    ShowMessage('Plik nie istnieje!');
    Exit;
  end;

  FileContent := TStringList.Create;
  try
    FileContent.LoadFromFile(FilePath);
    ShowMessage(FileContent.Text); // Wyświetl zawartość
  finally
    FileContent.Free;
  end;
end;

{
 
  Uprawnienia: Na Androidzie musisz dodać uprawnienia do czytania pamięci zewnętrznej. W pliku AndroidManifest.template.xml dodaj:
}


<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Obsługa typów plików: Jeśli chcesz filtrować pliki (np. tylko .txt), możesz dodać filtr:


Files := TDirectory.GetFiles(DownloadPath, '*.txt');
Wersja Delphi: Upewnij się, że używasz nowszej wersji Delphi z pełnym wsparciem FMX dla Androida.
Editor is loading...
Leave a Comment