İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Sinema Dizi Akıllı Ev Motosiklet Mikromobilite Kripto Para Sağlık Teknolojileri Son dakika Yazarlar
  1. Ana sayfa
  2. SDN Forum
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

[MAKALE] - Basit bir dosya kopyalama programı yapımı

Konu bilgisi

0cevap
2.767görüntüleme
10.05.2012açıldı
10.05.2012son cevap

#1
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.


[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.


[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,


[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

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.

Reklam