Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Open failed: ENOENT (no such file or directory) hatası
#1
Merhaba, iyi forumlar herkese.

Delphi 11 Fmx'te Intent ile android cihazdan ses dosyası seçtiriyorum. Seçtiğim dosyanın adını ve yolunu şu şekilde tek bir fonksiyon içinde yazdım. Yani seçme işlemi oluyor. Fakat Dosya Yolunu bulamıyor hatası alıyorum.


Seçtiğim dosyanın dosya yolu document/21/android:123213/FileName.mp3 şeklinde geliyordu. Android:123213 kısmını sildiriyorum. Altta görüldüğü üzere.

function TfrmGAyarlar.FileName(Uri: JNet_Uri): string;
var
 C: JCursor;
 LPath, LName: string;
begin
 Result := '';

 try
   C := AndroidApi.Helpers.TAndroidHelper.Activity.getContentResolver.query(Uri, nil, nil, nil, nil, nil);

   if (C = nil) then
     exit;

   try
     C.moveToFirst;
     LName := JStringToString(C.getString(C.getColumnIndex(TJOpenableColumns.JavaClass.DISPLAY_NAME)));

     if not (LName = '') then
     begin
       LPath := JStringToString(uri.getPath());
       Showmessage(LPath);

       var LStr := LPath.Remove(LPath.LastIndexOf('/') + 1);
       Result := TPath.Combine(LStr, LName);
     end;
   finally
     C.close;
   end;
 except
   on E: Exception do
     ShowMessage('AudioFileName içinde hata: ' + E.Message);
 end;
end;


Kodu okuttuğum kısımda alttaki fonksiyonda:
procedure TfrmGAyarlar.AudioSecimOku(Data: JIntent);
var
 Uri: Jnet_Uri;
 A: string;
begin
 try
   if Data.getData <> nil then
   begin
     Uri := Data.getData();
     A := FileName(Uri);

     MediaPlayer1.FileName := A;
     MediaPlayer1.Play;
   end;
 except
   on E: Exception do
     ShowMessage('GaleriSecimOku içinde hata: ' + E.Message);
 end;
end;

Şimdiden teşekkür ederim.

Dipnot: Dosya Adı ve Dosya Yolunu alma konusunda @emozgun hocamdan yararlandım. Github kodlarını incelemenizi tavsiye ederim Smile
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  FDEventAlerter hatası Kral 7 414 13-05-2024, Saat: 23:31
Son Yorum: Kral
  Google play Uygulama yükleme hatası [Çözüldü] codder71 3 423 23-02-2024, Saat: 22:42
Son Yorum: codder71
  Delphi 12 Boş Form Derleme Hatası [Çözüldü] codder71 4 629 21-02-2024, Saat: 22:09
Son Yorum: codder71
  (ÇÖZÜLDÜ - Kısmen) D11 Mobile SDK gönderim hatası shooterman 13 1.427 06-12-2023, Saat: 23:56
Son Yorum: 3ddark
  Rad Studio 11.3 RequestPermissions Hatası [Çözüldü] Mesut 0 543 18-07-2023, Saat: 14:30
Son Yorum: Mesut



Konuyu Okuyanlar: 1 Ziyaretçi