korasoglu Posted March 12, 2014 Share Posted March 12, 2014 (edited) Arkadaşlar bir klasorumuz var ve içerindeki dosyaların uzantılarıda sabit klasorun içindeki dosyaları alıyoruz fazlaolan = File.Find(aaa, "*.png", false, false, nil, nil); önceden belirlenen başka bir klasorun içeresindeki dosya isimleriyle (aynı olmayanı) sildirmek için nasıl bir yol izleriz. Edited March 12, 2014 by korasoglu Quote Link to comment Share on other sites More sharing options...
NotToday Posted March 12, 2014 Share Posted March 12, 2014 Sanırım dosyanın içinde benim belirlediğim isimler haricini silsin diyorsun.Öyleyse yukardaki gibi findle dosyaları bulursun.Silinmesini istemediğin dosyaların isimlerini bir tablo yaparsın.Gerisi if yapısına kalıyor.Eşleşmeyeni sildirebilirsin Quote Link to comment Share on other sites More sharing options...
korasoglu Posted March 12, 2014 Author Share Posted March 12, 2014 Dosya içerisinde geçen değil fazlaolan = File.Find(aaa, "*.png", false, false, nil, nil); for a,k in pairs(fazlaolan) do dedik burada k olan sıradaki dosya belirlenen klasore baktı içerisinde uzantısı önemli değil (k) adıyla bir dosya varsa silecek yok sıradaki dosyayı kontrol edecek Quote Link to comment Share on other sites More sharing options...
KintaRo Posted March 13, 2014 Share Posted March 13, 2014 Şu şekilde olabilir: KlasorTablosu = {} -- ana klasörde bulunmayan dosyalar bu tabloya eklenecek dosyalar = ""; klasor1 = Input.GetText("Input1") klasor2 = Input.GetText("Input2") if klasor1 ~= "" and klasor2 ~= "" then tAra = File.Find(klasor2, "*.*", false, false, nil, nil) -- 2. klasördeki dosyaları bul if tAra then -- eğer klasörde dosya mevcutsa for i,v in pairs(tAra) do -- döngü dosya = String.SplitPath(v).Filename .. String.SplitPath(v).Extension; -- dosya ismi ve uzantısı bul = File.Find(klasor1, dosya, false, false, nil, nil) -- dosyayı 1. klasörde ara if bul == nil then -- eğer bulamazsa Table.Insert(KlasorTablosu, Table.Count(KlasorTablosu)+1, dosya) -- tabloya ekle end end for i,v in pairs(KlasorTablosu) do -- dosya isimlerini stringe alt alta gelecek şekilde listele dosyalar = dosyalar .. v .. "\r\n"; end soru = Dialog.Message("", "Aşağıdaki dosyalar silinecektir, onaylıyor musunuz?\r\n\r\n" .. dosyalar, MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1) -- soru soru if soru == IDYES then -- eğer yes ise for i,v in pairs(KlasorTablosu) do -- dosyaları sil File.Delete(klasor2 .. "\\" .. v, false, false, true, nil) end Dialog.Message("", "Dosyalar silindi."); end end else Dialog.Message("Hata", "Öncek Klasörleri Seçin"); end Örnek proje: http://yadi.sk/d/FcSieJV5KSFAc Quote Link to comment Share on other sites More sharing options...
korasoglu Posted March 13, 2014 Author Share Posted March 13, 2014 Eline sağlık kintaro amacıma uygun hale getiririm gerisi kolay Quote Link to comment Share on other sites More sharing options...
korasoglu Posted March 21, 2014 Author Share Posted March 21, 2014 Hocam şu örneği bir inceleyip dönerseniz sevinirim. http://www.mediafire.com/download/9my3l14ch1ya717/klasor_karsilastirma.rar resim klasorundeki dosya isimleri film klasorunde yoksa o resim silinecek(resimlerin uzantısı sabit png) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.