DOSYA VE DİZİN İŞLEMLERİ

9.1. CurDir, ChDir, MkDir ve RmDir Deyim ve Fonksiyonları

Bu deyim ve fonksiyonlar sayesinde çalışma anında geçerli dizin veya klasörün adını öğrenebilir, başka bir dizine geçebilir, istediğiniz dizini silebilir veya yeni bir dizin oluşturabilirsiniz. Bu fonksiyonların işlevlerini anlatmak için önce yeni bir proje hazırladım ve projenin Form_Click yordamını Şekil 9.1'deki gibi düzenledim.

Şekil 9.1

Çalışma anında formun üzerinde tıklama yapılarak bu yordam işletilirse projenin çalıştırıldığı sırada geçerli olan sürücü ve dizinin adı MsgBox deyimi ile Şekil 9.2'deki ekrana yazılır. Bu projeyi hazırladığım sırada C: sürücüsünün "\VB5" dizini geçerli klasör durumundaydı.

Şekil 9.2

Şimdi yukarıdaki ekran görüntüsünü verdiğim Form_Click yordamında ChDir() deyimi ile geçerli sürücü veya dizini değiştireceğim. Form_Click yordamına, Şekil 9.3'de görüldüğü gibi eklediğim program satırı ile C: sürücüsünün geçerli dizin olmasını sağladım.

Şekil 9.3

Bu değişiklikten sonra proje çalıştırılıp Form_Click yordamı işletilirse MsgBox deyimi bu kez Şekil 9.4'deki gibi bir mesajı ekrana getirir.

Şekil 9.4

Şimdi başka bir sürücüdeki bir klasörü ChDir deyimi ile geçerli klasör olarak seçmek istiyorum. Bu amaçla Form_Click yordamını Şekil 9.5'deki gibi değiştirdim.

Şekil 9.5

Burada kullanılan CurDir fonksiyonuna dikkat ediniz. Eğer CurDir ile başka bir sürücüdeki geçerli dizinin adını öğrenmek istiyorsanız CurDir'ı fonksiyon olarak kullanmalısınız. Şekil 9.5'te verilen CurDir() fonksiyonunu kullanma örneği ile "D:" sürücüsündeki geçerli dizinin adı öğrenilebilir. Diğer yandan ChDrive() fonksiyonunu kullanarak Şekil 9.6'daki gibi geçerli sürücüyü değiştirebilirsiniz.

Şekil 9.6

Şimdi ise MkDir() deyimi ile çalışma anında "A:" sürücüsünde kök dizininin altında bir dizin hazırlayacağım. Bu amaçla Form_Click yordamını Şekil 9.7'deki gibi değiştirdim.

Şekil 9.7

İçeriği boş olan dizinleri RmDir deyimi ile silebilirsiniz. Şekil 9.8'de ekran görüntüsü verilen program satırları ile önce "A:" sürücünü geçerli sürücü olarak seçtim. Ardından "A:" sürücüsünün kök (\) dizinini geçerli dizin durumuna getirdim. Son olarak RmDir deyimi ile daha önce hazırlamış olduğum dizini sildim.

Şekil 9.8

9.2. FileCopy Deyimi

Bu deyimle bir sürücüden başka bir sürücüye, bir dizinden başka bir dizine dosya kopyalayabilir veya aynı dizin içinde dosyanın adını değiştirerek başka bir kopyasını hazırlayabilirsiniz. Şimdi örnek olması için "C:\VB5\Menü.Vbp dosyasını A: sürücüsüne kopyalayacağım. Bu amaçla üzerinde çalıştığım projenin formuna "Kopyala" adına sahip bir düğme yerleştirdim ve düğmenin Click yordamına Şekil 9.9'daki program satırını ekledim.

Şekil 9.9

Proje çalıştırıldığında forma yerleştirilen düğmede tıklama yapılırsa kopyalama işlemi yapılır. Eğer birden fazla dosya kopyalamak istiyorsanız joker (*.?) karakterlerden yararlanabilirsiniz.

9.3. Kill Deyimi

Bilgisayarın herhangi bir sürücü veya dizinindeki bir veya birden fazla dosyayı silmek istiyorsanız Kill deyiminden yararlanabilirsiniz. Örnek olması için form üzerine "Sil" adında bir düğme yerleştirip, bu düğmenin Click yordamına Şekil 9.10'da verilen program satırını yazdım.

Şekil 9.10

Çalışma sırasında Sil düğmesine basılırsa belirtilen dosya A: sürücüsünden silinir. Silinecek dosya veya dosyaların adlarını yukarıda yapıldığı şekilde doğrudan yazmak yerine, önce bir değişkene aktarıp, dosya adını içeren değişken adını Kill deyimine parametre olarak verebilirsiniz.

9.4. Name Deyimi

Name deyimi dosya ismi değiştirmek için kullanılır. Bu deyimin çalışmasını göstermek için hazırladığım projenin formuna Şekil 9.11'de görüldüğü gibi iki tane metin kutusu nesnesi yerleştirdim. İlk metin kutusuna çalışma anında adı değiştirilecek dosyanın adı, ikinci metin kutusuna ise dosyaya verilmek istenen yeni ad yazılacak.

Şekil 9.11

Çalışma sırasında önce, ilk metin kutusuna adı değiştirilmek istenen dosyanın adı, ardından dosyaya verilmek istenen yeni ad ikinci metin kutusuna yazılıp "Ad Değiştir" düğmesine tıklama yapılacak. Bu düğmeye basılması ile Şekil 9.12'deki program satırları işletilerek isim değiştirme işlemi gerçekleştirilmiş olacak.

Şekil 9.12

9.5. FileLen() ve FileDataTime() Fonksiyonları

Diskte bulunan bir dosyanın byte olarak büyüklüğünü öğrenmek istiyorsanız FileLen() fonksiyonundan yararlanabilirsiniz. Bu fonksiyon parametre olarak büyüklüğü öğrenilmek istenen dosyanın adını almaktadır. Dosya geçerli sürücü veya dizinde değilse, dosyanın yer aldığı dizini dosya adına ekleyebilirsiniz.

Bir dosyanın en son ne zaman değiştirildiğini öğrenmek istiyorsanız FileDateTime() fonksiyonundan yararlanabilirsiniz. Bu fonksiyona parametre olarak son değiştirildiği tarihi öğrenilmek istenen dosyanın adı verilir.

9.6. GetAttr() ve SetAttr() Fonksiyonları

GetAttr() fonksiyonu ile çalışma anında istediğiniz dosyanın öz niteliklerini öğrenebilirsiniz. GetAttr() fonksiyonu dışardan parametre olarak öz niteliği öğrenilmek istenen dosyanın adını almaktadır. Eğer Getattr() fonksiyonu kendisine parametre olarak verilen dosyanın öz niteliği Normal ise geriye 0 sayısal değerini döndürür. GetAttr() fonksiyonunun geriye döndürebildiği değerler Tablo 9.1'de verilmiştir. Ancak bir dosyanın birden fazla niteliği olabilir. Örneğin bir dosyanın hem gizli hem de yalnız okunur özelliği varsa GetAttr() fonksiyonu o dosya ile ilgili olarak geriye 3 değerini döndürür.

Geriye döndürülen değer

Dosyanın öz niteliği

0

Normal

1

Read only

2

Hidden

4

System

16

Directory

Tablo 9.1: Getattr fonksiyonunun geri dönderdiği değerlerin Tablosu

Setattr() fonksiyonu ile de istediğiniz dosyanın öz niteliğinde değişiklik yapabilirsiniz. SetAttr() fonksiyonunun işlevini göstermek için üzerinde çalıştığım projenin formunu Şekil 9.13'deki gibi düzenledim.

Şekil 9.13

Çalışma anında öz niteliğinde değişiklik yapılmak istenen dosyanın adı metin kutusuna yazılacak ve dosyaya verilmek istenen özellikle ilgili olarak istenen düğme tıklanacak. "Sistem dosyası" düğmesi için hazırladığım program satırını Şekil 9.14'te verdim.

Şekil 9.14

Diğer düğmeler için de benzer şekilde program satırı yazılır.

9.7. Dir() Fonksiyonu

Bu fonksiyon DOS'un DIR komutu ile benzer işleve sahiptir. Bu fonksiyon sayesinde istediğiniz klasördeki istediğiniz özelliklere sahip dosyaları bir formun üzerine yazabilir veya Liste kutusu nesnesine listeleyebilirsiniz. Şekil 9.15'de ekran görüntüsü verilen program satırları ile aktif dizindeki ilk dosyanın adı formun üzerine yazılır.

Şekil 9.15

Çalışma anında formun üzerinde tıklama yapılıp bu yordam işletilecek olunursa aktif dizindeki ilk dosya formun üzerine yazılır. Şekil 9.16'daki verilen ekran görüntüsünü bu formu işlettikten sonra aldım.

Şekil 9.16

Eğer başka bir dizindeki dosyaları listelemek istiyorsanız, Dir() fonksiyonuna dizin adını ve listelemek istediğiniz dosyaların adını Dos'taki gibi yazmanız gerekir. "C:\Windows" dizini altındaki exe uzantılı dosyaların form üzerine yazılmasını sağlamak için Şekil 9.17'de verilen program satırlarını yazdım.

Şekil 9.17

Çalışma anında formun üzerinde tıklama yapılacak olunursa, belirtilen dizindeki EXE uzantılı bütün dosyalar aşağıdaki (Şekil 9.18) gibi listelenir.

Şekil 9.18