file etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
file etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

BatchCopier: FileCopier sınıfı ile toplu dosya işlemleri

Adobe Air ile kopyalama işlemlerinde sadece "complete" eventi yetersiz kalmıştı. Bunun üzerine bu işlevi, yazdığım FileCopier sınıfı ile zengin bir event sistemiyle, byte bazında gerçekleştirmiştim. Şimdi de bu işlemi bulk (toplu) olarak yapan sınıfı takdim edeyim:

Download : BatchCopier.zip

BatchCopier ile;
- o an ki toplam progress'i (0-1 arasi) görebilir,
- geçerli progress'i (0-1 arasi) görebilir,
- geçerli dosya ismini alabilirsiniz.

Kullanımı:

import com.onderezdi.utils.FileCopier;
import com.onderezdi.utils.BatchCopier;


var bc:BatchCopier = new BatchCopier();
bc.destination = targetDir.nativePath + "/videos";
for(var i=0; i<selectedVideosOfFirm.length; i++){
var f:File = new File(File.applicationDirectory.nativePath + "/videos/" + selectedVideosOfFirm[i].file);
bc.addItem(f);
}
bc.addEventListener("nextfile", onNext); //Sonraki yukleme islemi basladiginda cast eder
bc.addEventListener("progress", onProgress); //her yukleme evresinde cast eder
bc.addEventListener("complete", copyImages); //tum yukleme bittiginde cast eder
bc.start();

Adobe Air 1.5 ve dosya kopyalama eventleri

Adobe Air'de File sınıfı içerisinde copy ve move işlemleri için nedense complete dışında event yok. Bu eksikliği kapatmak için kendi sınıfımızı yazmak zorundayız. Bu yüzden birçok event'i içerisinde barındıran FileCopier isimli sınıfı yazdım.

Örneklerle açıklamak gerekirse:

Download : FileCopier


import com.onderezdi.utils.FileCopier;

var fc:FileCopier = new FileCopier();
fc.source = "C:/Documents and Settings/Scorpion/Desktop/FerrariVirtualRace.exe";
fc.destination = "C:/Documents and Settings/Scorpion/Desktop/FerrariVirtualRaceeeeeeeeeee.exe";
fc.addEventListener("progress", function(){trace(fc.bytesLoaded+" / "+fc.bytesTotal)});
fc.addEventListener("complete", function(){trace("fileCopier Done!")});
fc.addEventListener("started", function(){trace("fileCopier start!")});
fc.addEventListener("stopped", function(){trace("fileCopier stopped!")});
fc.start();

/*
//Burada ise islemi durdurup, baslatabiliriz. Bir nevi pause mantigi
setTimeout(function(){fc.stop();},2000);
setTimeout(function(){fc.start();},4000);
*/

top