eSa
Dekan
- Katılım
- 5 Kasım 2011
- Mesajlar
- 9,782
- Reaksiyon puanı
- 352
- Puanları
- 263
Bu makalemizde belirlediğimiz klasördeki dosya veya dosyalarımızı, hedef klasöre nasıl kopyalanacağını göreceğiz. Boş bir proje formu açarak araç kutusundaki DriveListBox, DirListBox ve FileListBoxkontrollerini de kullanarak, örneğimizdeki gibi bir ekran oluşturuyoruz.
kaynak_file olarak adlandırdığımız kontrolümüz üzerinde çoklu seçim yapabilmemiz için; kontrolun özelliklerinden MultiSelect = 2 - Extended olarak ayarlıyoruz.
Kodlama esnasında okunabilirliği arttırmak için, kaynak tarafında bulunan kontrollerimizin isimlerini
kaynak_drive ,kaynak_dir ve kaynak_file olarak, sağ taraftaki kontrollerimizin isimlerini de; hedef_drive, hedef_dir ve hedef_file olarak değiştirdim.
Bu kontrollerimizin birbirleri ile etkileşimli çalışmaları için Change olaylarına ufak eklemeler yapıyoruz. Böylece klasör listesi değiştiği zaman, dosya listesi de bu klasörün içini göstersin.
Benzer işlemi hedef klasörümüzü gösteren kontroller için de uygulamayı unutmuyoruz.
Gelelim dosya kopyalama işlemine. Tüm dosyaları kopyala ve seçilenleri kopyala işlemi, neredeyse aynı olduğundan bu işlem için parametre gönderebileceğimiz ufak bir sub prosedür yazıyoruz.
Kodları birçok yere kopyalayıp ufak değişiklikler yapmaktansa, bu tip işlemler için bir fonksiyon veya sub oluşturmak; kod yazmanızı hızlandıracağı gibi, programınıza ileriki bir tarihte geriye dönüp baktığınızda okumanızı da kolaylaştıracaktır.
Son olarak Form1 içinde yazılan kodların tamamını buraya ekliyorum,
İşte sonuç;
Bu makalede kullanılan programlar : Visual Basic 6.0
Bir sonraki makalede görüşmek üzere..
eSa
kaynak_file olarak adlandırdığımız kontrolümüz üzerinde çoklu seçim yapabilmemiz için; kontrolun özelliklerinden MultiSelect = 2 - Extended olarak ayarlıyoruz.
Kodlama esnasında okunabilirliği arttırmak için, kaynak tarafında bulunan kontrollerimizin isimlerini
kaynak_drive ,kaynak_dir ve kaynak_file olarak, sağ taraftaki kontrollerimizin isimlerini de; hedef_drive, hedef_dir ve hedef_file olarak değiştirdim.
Bu kontrollerimizin birbirleri ile etkileşimli çalışmaları için Change olaylarına ufak eklemeler yapıyoruz. Böylece klasör listesi değiştiği zaman, dosya listesi de bu klasörün içini göstersin.
Kod:
[COLOR=#0000ff]Private Sub[/COLOR] kaynak_Drive_Change()
kaynak_Dir.Path = kaynak_Drive.Drive
[COLOR=#0000ff]End Sub[/COLOR]
[COLOR=#0000ff]Private Sub[/COLOR] kaynak_Dir_Change()
kaynak_File.Path = kaynak_Dir.Path
[COLOR=#0000ff]End Sub[/COLOR]
Benzer işlemi hedef klasörümüzü gösteren kontroller için de uygulamayı unutmuyoruz.
Gelelim dosya kopyalama işlemine. Tüm dosyaları kopyala ve seçilenleri kopyala işlemi, neredeyse aynı olduğundan bu işlem için parametre gönderebileceğimiz ufak bir sub prosedür yazıyoruz.
Kod:
[COLOR=#0000ff]Private Sub[/COLOR] dosya_kopyala([COLOR=#0000ff]ByVal[/COLOR] secilenler [COLOR=#0000ff]As Boolean[/COLOR])
[COLOR=#0000ff]For[/COLOR] i = 0 To kaynak_File.ListCount - 1
[COLOR=#0000ff]If[/COLOR] secilenler [COLOR=#0000ff]Then[/COLOR]
[COLOR=#0000ff]If [/COLOR]kaynak_File.Selected(i) [COLOR=#0000ff]Then GoSub[/COLOR] kopyala
[COLOR=#0000ff]Else[/COLOR]
[COLOR=#0000ff]GoSub[/COLOR] kopyala
[COLOR=#0000ff]End If[/COLOR]
[COLOR=#0000ff]Next [/COLOR]i
hedef_File.Refresh
MsgBox "Kopyalama işlemi tamamlandı"
[COLOR=#0000ff]Exit Sub[/COLOR]
kopyala:
FileCopy kaynak_File.Path & "\" & kaynak_File.List(i), hedef_File.Path & "\" & kaynak_File.List(i)
[COLOR=#0000ff]Return[/COLOR]
[COLOR=#0000ff]End Sub[/COLOR]
Kodları birçok yere kopyalayıp ufak değişiklikler yapmaktansa, bu tip işlemler için bir fonksiyon veya sub oluşturmak; kod yazmanızı hızlandıracağı gibi, programınıza ileriki bir tarihte geriye dönüp baktığınızda okumanızı da kolaylaştıracaktır.
Son olarak Form1 içinde yazılan kodların tamamını buraya ekliyorum,
Kod:
[COLOR=#0000ff]Private Sub[/COLOR] Check1_Click()
[COLOR=#0000ff]If [/COLOR]Check1.Value = Checked [COLOR=#0000ff]Then[/COLOR]
kaynak_File.Pattern = "*.txt"
[COLOR=#0000ff]Else[/COLOR]
kaynak_File.Pattern = "*.*"
[COLOR=#0000ff]End If[/COLOR]
[COLOR=#0000ff]End Sub[/COLOR]
[COLOR=#0000FF]Private Sub[/COLOR] dosya_kopyala([COLOR=#0000FF]ByVal[/COLOR] secilenler [COLOR=#0000FF]As Boolean[/COLOR])
[COLOR=#0000FF]For[/COLOR] i = 0 To kaynak_File.ListCount - 1
[COLOR=#0000FF]If[/COLOR] secilenler [COLOR=#0000FF]Then[/COLOR]
[COLOR=#0000FF]If [/COLOR]kaynak_File.Selected(i) [COLOR=#0000FF]Then GoSub[/COLOR] kopyala
[COLOR=#0000FF]Else[/COLOR]
[COLOR=#0000FF]GoSub[/COLOR] kopyala
[COLOR=#0000FF]End If[/COLOR]
[COLOR=#0000FF]Next [/COLOR]i
hedef_File.Refresh
MsgBox "Kopyalama işlemi tamamlandı"
[COLOR=#0000FF]Exit Sub[/COLOR]
kopyala:
FileCopy kaynak_File.Path & "\" & kaynak_File.List(i), hedef_File.Path & "\" & kaynak_File.List(i)
[COLOR=#0000FF]Return[/COLOR]
[COLOR=#0000FF]End Sub[/COLOR]
[COLOR=#0000ff]Private Sub [/COLOR]cmd_kopyala_hepsi_Click()
dosya_kopyala [COLOR=#0000ff]False[/COLOR]
[COLOR=#0000ff]End Sub[/COLOR]
[COLOR=#0000ff]Private Sub[/COLOR] cmd_kopyala_secilen_Click()
dosya_kopyala [COLOR=#0000ff]True[/COLOR]
[COLOR=#0000ff]End Sub[/COLOR]
[COLOR=#0000ff]Private Sub[/COLOR] Form_Load()
kaynak_Dir.Path = "c:\test1"
hedef_Dir.Path = "c:\test2"
[COLOR=#0000ff]End Sub[/COLOR]
[COLOR=#0000ff]Private Sub[/COLOR] hedef_Dir_Change()
hedef_File.Path = hedef_Dir.Path
[COLOR=#0000ff]End Sub[/COLOR]
[COLOR=#0000ff]Private Sub[/COLOR] hedef_Drive_Change()
hedef_Dir.Path = hedef_Drive.Drive
[COLOR=#0000ff]End Sub[/COLOR]
[COLOR=#0000ff]Private Sub[/COLOR] kaynak_Dir_Change()
kaynak_File.Path = kaynak_Dir.Path
[COLOR=#0000ff]End Sub[/COLOR]
[COLOR=#0000ff]Private Sub[/COLOR] kaynak_Drive_Change()
kaynak_Dir.Path = kaynak_Drive.Drive
[COLOR=#0000ff]End Sub[/COLOR]
İşte sonuç;
Bu makalede kullanılan programlar : Visual Basic 6.0
Bir sonraki makalede görüşmek üzere..
eSa