Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 3/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Silinecek dosya bulunamadı
#1
var
 i: Integer;
Konum:String;
DosyaAdi:String;
const
StrQrBarCode = 'QrBarCode';
begin
for i := Pred(ListView2.Items.Count) downto 0 do
begin

    DosyaAdi:=ListView2.Items[i].Text;
    Konum := TPath.GetSharedDocumentsPath + PathDelim + strQrBarCode + PathDelim ;

  if ListView2.Items[i].Checked then
    ListView2.Items.Delete(i);


  if TFile.Exists(Konum) then
    TFile.Delete(Konum)
  else
    ShowMessage('Silinecek dosya bulunamadı');

document / qrbarcode / klasörü içindeki txt dosyasını siliyor fakat sildikden sonra silinecek dosya bulunamadı diyor
Cevapla
#2
Pred(ListView2.Items.Count) yerine ListView2.Items.Count-1 dene belki olur.
WWW
Cevapla
#3
Merhaba,
Yazmış olduğunuz metod içerisinde gözüme çarpan mantıksal hatalar var: 
  • Konum değişkenine, yalnızca bir dizi klasör konumu atamışsınız ve daha sonra TFile.Exist ve  TFile.Delete fonksiyonları ile dosyanın varlığını Konum değişkeni ile kontrol ederek silmek istemişsiniz.
    TFile.Exist ve TFile.Delete fonksiyonları bir klasör  (Konum değişkeni) üzerinde işlem yapamaz, yalnızca fiziksel bir dosya üzerinde işlem yapabilir.
  • DosyaAdi değişkenine atamış olduğunuz değeri metod içerisinde kullanmamışsınız. 
Dosya adının, DosyaAdi değişkenine atandığını varsayarak, kodunuzun aşağıdaki gibi olması gerektiği, fikrindeyim.

 if TFile.Exists(Konum+DosyaAdi) then
   TFile.Delete(Konum+DosyaAdi)
 else
   ShowMessage('Silinecek dosya bulunamadı');
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#4
(17-05-2017, Saat: 01:12)witalihakko Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlPred(ListView2.Items.Count) yerine ListView2.Items.Count-1 dene belki olur.

(17-05-2017, Saat: 08:33)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Yazmış olduğunuz metod içerisinde gözüme çarpan mantıksal hatalar var: 
  • Konum değişkenine, yalnızca bir dizi klasör konumu atamışsınız ve daha sonra TFile.Exist ve  TFile.Delete fonksiyonları ile dosyanın varlığını Konum değişkeni ile kontrol ederek silmek istemişsiniz.
    TFile.Exist ve TFile.Delete fonksiyonları bir klasör  (Konum değişkeni) üzerinde işlem yapamaz, yalnızca fiziksel bir dosya üzerinde işlem yapabilir.
  • DosyaAdi değişkenine atamış olduğunuz değeri metod içerisinde kullanmamışsınız. 
Dosya adının, DosyaAdi değişkenine atandığını varsayarak, kodunuzun aşağıdaki gibi olması gerektiği, fikrindeyim.

 if TFile.Exists(Konum+DosyaAdi) then
   TFile.Delete(Konum+DosyaAdi)
 else
   ShowMessage('Silinecek dosya bulunamadı');

Hocalar verdiğiniz kodları denedim ikiside yaramadı .
Fesih hocam bu kodu mp3 dosyasını silerken bi uygulamada kullanmıştım ( siz vermiştiniz )
Orda da silme işlemini gerçekleştirmeyip silinecek dosya bulunamadı hatasını veriyor
Ben sadece dosya yolu için
Alt klasör için ( const ) yolunu kullandım
Cevapla
#5
Hatalı olabilirim ama şundan dolayı olabilir. Siz listview de itemleride siliyorsunuz, sildikçe adedi ve sırası değişir. Birde Dosyaadı değişkeni orda ne işe yarıyor ? Fesih bey yazmış zaten, hatalı kod olabilir hatta hangi dosyayı sildiğinizi bilmiyor olabilirsiniz.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#6
Şuna benzer bir şey yapıp neyi silip neyi silemediğimizi görelim.


 if TFile.Exists(Konum) then
  begin
  TFile.Delete(Konum)
  ShowMessage('Silmeyi deniyorum : ' + chr(13) + chr(10) + Konum + chr(13) + chr(10) + IntToStr(ListView2.Items.Count-1) + chr(13) + chr(10) + IntToStr(i));
  end
else
  ShowMessage('Silinecek dosya bulunamadı' + chr(13) + chr(10) + Konum + chr(13) + chr(10) + IntToStr(ListView2.Items.Count-1) + chr(13) + chr(10) + IntToStr(i));

gibi gibi....

Kodu çalıştırınca @Fesih ARSLAN dediği gibi klasörü silmeye çalıştığını göreceksin. Dosyanın adını DosyaAdi değişkenine almışsın ancak bunu hiç kullanmamışsın. Yani "...document /qrbarcode/". Senin silmen gereken "...document /qrbarcode/DosyaAdı.mp3"

Hem silip hem dosya silinemedi diyorsa döngünde sıkıntı var.

Yada bize paylaştığın kısımda bu şekilde.

Ayrıca farklı bir durum var. Silmek istenen dosyayı önce listeden siliyorsun ve sonra dosyayı silmeye çalışıyorsun. O an başka uygulama kullanıyor olabilir. Ya dosya silinmezse?
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla
#7
Güzel kardeşim, bence sizin dosya silmeye değil; bir Delphi kitabına, biraz sabıra ve bolca deneme yapmaya ihtiyacınız var.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#8
(18-05-2017, Saat: 10:06)engerex Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlŞuna benzer bir şey yapıp neyi silip neyi silemediğimizi görelim.


 if TFile.Exists(Konum) then
  begin
  TFile.Delete(Konum)
  ShowMessage('Silmeyi deniyorum : ' + chr(13) + chr(10) + Konum + chr(13) + chr(10) + IntToStr(ListView2.Items.Count-1) + chr(13) + chr(10) + IntToStr(i));
  end
else
  ShowMessage('Silinecek dosya bulunamadı' + chr(13) + chr(10) + Konum + chr(13) + chr(10) + IntToStr(ListView2.Items.Count-1) + chr(13) + chr(10) + IntToStr(i));

gibi gibi....

Kodu çalıştırınca @Fesih ARSLAN dediği gibi klasörü silmeye çalıştığını göreceksin. Dosyanın adını DosyaAdi değişkenine almışsın ancak bunu hiç kullanmamışsın. Yani "...document /qrbarcode/". Senin silmen gereken "...document /qrbarcode/DosyaAdı.mp3"

Hem silip hem dosya silinemedi diyorsa döngünde sıkıntı var.

Yada bize paylaştığın kısımda bu şekilde.

Ayrıca farklı bir durum var. Silmek istenen dosyayı önce listeden siliyorsun ve sonra dosyayı silmeye çalışıyorsun. O an başka uygulama kullanıyor olabilir. Ya dosya silinmezse?


var
Konum:string;
i:integer;
const
strQrBarCode = 'QrBarCode';
begin
Konum := TPath.GetSharedDocumentsPath + PathDelim + strQrBarCode + PathDelim ;
if TFile.Exists(Konum) then
 begin
 TFile.Delete(Konum)  ;
 ShowMessage('Silmeyi deniyorum : ' + chr(13) + chr(10) + Konum + chr(13) + chr(10) + IntToStr(ListView2.Items.Count-1) + chr(13) + chr(10) + IntToStr(i));
 end
else
 ShowMessage('Silinecek dosya bulunamadı' + chr(13) + chr(10) + Konum + chr(13) + chr(10) + IntToStr(ListView2.Items.Count-1) + chr(13) + chr(10) + IntToStr(i));

Verdiğiniz kodu kullandım hocam 
Silinecek dosya bulunamadı
/storage/emulated/0/Documents/QrBarCode
45
1116689749  ( bu sayı silme işlemini yapınca değişiyor )
Cevapla
#9
paranayoq Adlı Kullanıcıdan Alıntı:bu sayı silme işlemini yapınca değişiyor

Sizce neden bu sayı değişiyor???



İşte bu yüzden:

(18-05-2017, Saat: 12:02)Tuğrul HE LVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlGüzel kardeşim, bence sizin dosya silmeye değil; bir Delphi kitabına, biraz sabıra ve bolca deneme yapmaya ihtiyacınız var.
There's no place like 127.0.0.1
WWW
Cevapla
#10
(18-05-2017, Saat: 14:24)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
paranayoq Adlı Kullanıcıdan Alıntı:bu sayı silme işlemini yapınca değişiyor

Sizce neden bu sayı değişiyor???



İşte bu yüzden:

(18-05-2017, Saat: 12:02)Tuğrul HE LVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlGüzel kardeşim, bence sizin dosya silmeye değil; bir Delphi kitabına, biraz sabıra ve bolca deneme yapmaya ihtiyacınız var.
Bazı arkadaşlarımız yardımcı olmaktan çok azarlamak üzerine çalışıyor.
Elimde bi delphi kitabı olsa ve bu işleri çok iyi bilsem neden yardım isteyeyim fmx çok farklı çalışıyor bazen küçük ayrıntı bile işleri değiştirebiliyor.
Herkes herşeyi kendi halledikden sonra bu forumların ne önemi var. Bazı arkadaşlar gerçekten bilgilerinden istifade ettiriyor sağolsunlar.
Yardımcı olan olmayan herkesden Allah razı olsun .
Yardımcı olmayanlar tersleyeceklerine yazmasınlar ricamdır.
Ayrıca forum yardım konularına kapalı değil zannediyorum ?
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çekilen resmi dosya yolunu alma? apachi2006 5 189 24-02-2018, Saat: 23:54
Son Yorum: apachi2006
Question farklı dosya boyutu sıkıntısı BY-HAYALET 2 154 31-01-2018, Saat: 11:17
Son Yorum: BY-HAYALET
Question proje dosya boyutu sorunu BY-HAYALET 9 305 23-01-2018, Saat: 14:21
Son Yorum: BY-HAYALET
  Sqllite büyük dosya ve yolu hk. pro_imaj 15 901 17-08-2017, Saat: 11:25
Son Yorum: pro_imaj
  Mobil Uygulamadan Mp3 dosya paylaşı (çözüldü) Paranoyaq 21 1.610 29-04-2017, Saat: 16:56
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi