Delphi icerisinde klasor ve dosya işlemlerinde kullanabilmemiz icin bir cok fonksiyon tanımlanmıştır.
Chdir(Klasor_Yolu);
Aktif dizini değiştirmek icin kullanılan bir fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
begin
Chdir(‘C:\WinNt\System32’); // Aktif dizini değiştir
end;
Yukarıda ki gibi bir kod sayesinde aktif dizin C:\WinNt\System32 olmaktadır. Bu aşamadan sonra dosyanızı sadece ismini belirterek calıştırmanız (System32 icerisindeki) mumkun olacaktır.
CloseFile(Dosya_Yolu);
Dosyayı kapatmak icin kullanılan bir prosedurdur. Aşağıdaki gibi bir kodlamayla dosyadaki ilk satırı okuyup formunuzun başlığında yazdırabilirsiniz.
Procedure TForm1.Button1Click(Sender; Object);
var
Yol : TextFile;
S : String;
begin
S := ‘Nihat Demirli’;
AssignFile(Yol, ‘C:\WinNt\Nihat.txt’);
Reset(Yol);
ReadLn(Yol , S); // Dosyadan oku
Caption := S; // Başlıkta yaz
CloseFile(Yol); // Dosyayı kapat
end;
CreateDir(Klasor_Yolu);
Klasor oluşturmak icin kullanılan bir fonksiyondur. Şayet belirtilen yerde klasoru başarıyla oluşturulursa geriye true değerini, oluşturmazsa da false değerini dondurecektir.
Procedure TForm1.Button1Click(Sender; Object);
begin
If CreateDir(‘C:\WinNt\Gaziler’) Then
Caption := ‘Klasor Oluşturuldu’
else
Caption:= ‘Klasor Oluşturulamadı’;
end;
Bu tip orneklerde var olan bir klasoru kontrol ederek kod yazarsanız daha doğru sonuc almanız mumkun olacaktır. Tabii Uses’ e FileCtrl eklemeyi unutmayalım.
Procedure TForm1.Button1Click(Sender; Object);
begin
If Not DirectoryExists(‘C:\Temp’) Then // Klasor yoksa
If Not CreateDir(‘C:\Temp’) Then // Oluştur
Caption := ‘Klasor Oluşturulamadı’;
end;
Ornekte de dikkat edildiği uzere C:\Temp klasoru yoksa bir altında ki satırı işleyecektir. Alt satırında ise mesaj klasor oluşturulmadığında vericektir. Klasor oluşturulduğunda mesaj vermeyecektir.
DeleteFile(Dosya_Yolu);
Parametre ile belirtilen yoldaki dosyayı silmek icin kullanılan bir fonksiyondur. Şayet silme işlemi başarılı bir şekilde gercekleştiyse true değerini, aksi takdirde de false değerini dondurecektir.
Procedure TForm1.Button1Click(Sender; Object);
begin
If DeleteFile(‘C:\WinNt\Nihat.Txt’) Then // Dosya Silindi ise
Caption := ‘Dosya Silindi’
else
Caption := ‘Dosya Silinmedi’;
end;
DirectoryExists(Klasor_Yolu):
Parametre ile belirtilen yolda klasorun var olup olmadığını kontrol eden fonksiyondur. Fonksiyondan true değerinin donmesi, belirtilen yolda o klasorun var olduğu anlamını taşımaktadır.
Procedure TForm1.Button1Click(Sender; Object);
begin
If DirectoryExists(‘C:\WinNt\Gaziler’) Then
Caption := ‘Klasor var’
else
Caption := ‘Klasor yok’;
end;
DiskFree(Surucu_Numarası);
Parametre ile belirtilen surucu icerisindeki boş alanı oğrenmek icin kullanabileceğiniz bir fonksiyondur. Surucu numaraları ve değerleri aşağıda verilmiştir.
Numara
Adı
1
A
2
B
3
C
4
D
5
E
6
F
Procedure TForm1.Button1Click(Sender; Object);
var
Bos_Alan : Integer;
begin
Bos_Alan := DiskFree(3); // C Surucusunde ne kadar boş yer var
Caption := IntToStr(Bos_Alan);
end;
DiskSize(Surucu_Numarası);
Parametre ile belirtilen surucudeki boş bellek miktarını hesaplayan fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
var
Kapasite : Integer;
begin
Kapasite := DiskSize(3); // C Surucusunun toplam kapasitesi
Sonuc := DateTimeToStr(Tarih); // Aktif tarih ve saati yaz
Caption:= IntToStr(Kapasite);
end;
FileAge(Dosya_Yolu);
Dosyanın oluşturma tarihini hesaplayabilen bir fonksiyondur. Aşağıdaki şekilde bir kodlamayla tum dosyaların oluşturulma tarihlerini oğrenebilirsiniz. Fonksiyondan geriye donen değer tam sayı tipinde olacağı icin FileDateToDateTime tip donuşturme fonksiyonu sayesinde tarihsel bir değişkene aktarılabilir.
Procedure TForm1.Button1Click(Sender; Object);
var
Zaman : TDateTime;
Goster : AnsiString;
begin
Zaman:= FileDateToDateTime(FileAge('C:\Deneme.txt'));
Goster := DateTimeToStr(Zaman);
Caption:= Goster ;
end;
FileDateToDateTime(Dosya_Tarihi);
FileAge fonksiyonundan geriye donen değeri DateTime tipine donuşturmek icin kullanılan bir fonksiyondur. Yukarıda ki orneği inceleyebilirsiniz.
FileExists(Dosya_Yolu);
Belirtilen yolda dosyanın var olup olmadığını kontrol eden bir fonkiyondur. Şayet dosya belirtilen yerde varsa geriye true değeri, yoksa false değeri donecektir.
Procedure TForm1.Button1Click(Sender; Object);
var
begin
If FileExists(‘C:\WinNt\Nihat.txt’) Then // Dosya varsa
Caption := ‘Dosya var’
else
Caption := ‘Dosya Yok’;
end;
FileGetAttr(Dosya_Yolu);
Dosyaya ait ozellikleri oğrenebilmek icin kullanılan bir fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
var
Yol : AnsiString;
Sayi : Integer;
begin
Yol := ‘C:\WinNt\Nihat.txt’;
Sayi := FileGetAttr(Yol);
If (Sayi and faHidden)0 Then Caption := Gizli;
If (Sayi and faSysFile)0 Then Caption := Caption+’ ’+Sistem;
If (Sayi and faReadOnly)0 Then Caption := Caption+’ ’+Salt Okunur;
If (Sayi and faDirectory)0 Then Caption := Caption+’ ’+Klasor;
If (Sayi and faArchive)0 Then Caption := Caption+’ ’+Arşiv;
If (Sayi and faVolumeId)0 Then Caption := Caption+’ ’+Etiket;
end;
FileIsReadOnly(Dosya_Yolu);
Parametre ile belirtilen yoldaki dosyanın ReadOnly (salt okunur) olup olmadığını bildiren bir fonksiyondur. Bilhassa icerisinde değişiklik yapılıp yapılamayacağı durumunun onemli olduğu durumlarda cok işinize yarayacak bir fonksiyondur. Fonksiyondan, şayet dosya ReadOnly ise true, aksi durumda false değeri donecektir.
Procedure TForm1.Button1Click(Sender; Object);
begin
If FileIsReadOnly(‘C:\WinNt\Nihat.txt’) Then
Caption := ‘Değişiklik yapamazsınız’
else
Caption := ‘Değişiklik yapabilirsiniz’;
end;
FileSearch(Dosya_Adı , Aranacak_Klasor);
Birinci parametre ile belirleyeceğiniz dosyayı, ikinci parametre ile belirleyeceğiniz klasorlerin icerisinde arar. Eğer dosyayı bulursa, bulduğu dosyanın yoluyla beraber ismini dondurecektir. Şayet dosyayı bu klasorlerde bulamazsa geriye boş string değeri donecektir.
Procedure TForm1.Button1Click(Sender; Object);
var
Yol : AnsiString;
begin
Yol := FileSearch(‘Notepad’ , ‘C:\WinNt ;C:\WinNt\System32’);
If Yol= 0 Then // Dosya yoksa
Caption := ‘Dosya Bulunamadı’
else
Caption := Yol; // C:\WinNt\Notepad.exe yazar
end;
Yukarıdaki ornekte Notepad.Exe isimli dosya C:\WinNt ve C:\WinNt\System32 klasorlerinin icerisinde aranmaktadır.
FileSetAttr(Dosya_Yolu , Ozellik);
Birinci parametre ile belirlenen dosyaya ikinci parametre ile belirlenen ozelliği atamak icin kullanılan bir fonksiyondur. Aşağıdaki şekilde bir dosyaya hidden ozelliği kazandırabilirsiniz.
Procedure TForm1.Button1Click(Sender; Object);
begin
FileSetAttr(‘C:\WinNt\Nihat.txt’ , faHidden); // Hidden ozelliği kazandır
end;
Ozellik
Acıklama
faHidden
Gizli dosya yapar
faReadOnly
Salt okunur yapar
faSysFile
Sistem dosyası ozelliği verir
faVolumeId
Etiket ozelliği kazandırır
faDirectory
Klasor
faArchive
Arşiv ozelliği verir
Şayet birden fazla ozellik aynı anda atanacak ise o zaman kodunuzu aşağıdaki şekilde değiştirmelisiniz.
Procedure TForm1.Button1Click(Sender; Object);
begin
FileSetAttr(‘C:\WinNt\Nihat.txt’ , faHidden+faReadOnly); // Hidden ve ReadOnly ozelliği kazandır
end;
FindFirst(Dosya_Yolu , Ozellik , Ad);
Belirtilen klasorun icerisinde joker karakterler ile belirtilen dosyaları arar, ilk bulduğu dosyayı geriye dondurur. Bulduğu dosyanın isim, ozellik vs. leri TSearchRec tipli ucuncu parametre olarak belirlenen değişkene aktarılır.
Procedure TForm1.Button1Click(Sender; Object);
var
Dosya : TSearchRec;
begin
FindFirst(‘C:\WinNt\*.txt’ , faAnyFile , Dosya);
Caption := Dosya.Name;
end;
Yukarıdaki ornekte C:\WinNt klasorunun icerisindeki txt dosyalarından ilk bulduğu dosya isimli değişkene aktarılmaktadır. İkinci parametre ile aranılacak dosyaya ait ozellikler belirlenebilir, sadece bu ozelliğe uyan ilk dosya bulunabilir. Burada kullanılan faAnyFile seceneği ozellikleri dikkate almadan işlem yap demektir.
findNext(Dosya);
Tek dosya değilde ( tum txt uzantılı dosyalar veya vs. vs. ) tum dosyalar listelenecek ise yani aynı isme ve ozelliğe sahip diğer dosyaların da bulunması gerekiyorsa bu durumlarda kullanacağınız fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
var
Dosya : TSearchRec;
begin
If FindNext(‘C:\WinNt\*.txt’ , faAnyFile , Dosya)=0 Then
Begin
Repeat;
ListBox1.Items.Add(Dosya.Name);
Until FindNext(Dosya)0; // Varsa sonrakini bul
FindClose(Dosya); //Kapat
end;
end;
ForceDirectories(Klasor_Yolu);
Tek seferde ic ice birden fazla klasor oluşturmak icin kullanılan fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
Begin
ForceDirectories(‘C:\Klasor1\Klasor2\Klasor3’); // İc ice oluştur
end;
GetCurrentDir;
Parametresiz kullanılan bu fonksiyon sayesinde aktif calışılan klasorun yolu oğrenebilir.
Procedure TForm1.Button1Click(Sender; Object);
Begin
Caption := GetCurrentDir; // Aktif klasoru yolu ile yaz
end;
GetDir(Surucu_Numarası , Aktif_Klasor);
Birinci parametre ile verilen surucu numarasındaki aktif klasoru oğrenmek icin kullanılan bir fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
var
Klasor : AnsiString;
begin
GetDir(3 , Klasor); // C Surucusundeki aktif klasoru ver
Caption := Klasor;
end;
RemoveDir(Klasor_Yolu);
Parametre ile belirtilen yoldaki klasoru silme icin kullanılan bir fonksiyondur. Dikkat edeceğiniz husus silinecek olan klasorun icinin boş olması gerektiğidir.
Procedure TForm1.Button1Click(Sender; Object);
begin
RemoveDir(‘C:\Klasor1’); // Klasoru sil
end;
Bu tur işlemlerde oncelikle klasorun var olup olmadığını kontrol ettirirseniz, cok daha sağlıklı sonuclar alırsınız.
Procedure TForm1.Button1Click(Sender; Object);
begin
If DirectoryExists(‘C:\Klasor1’) Then // Klasor varsa
RemoveDir(‘C:\Klasor1’); // Klasoru sil
end;
RenameFile(Dosya_Yolu , Yeni_İsim);
Birinci parametre ile verilen dosya ismini ikinci parametreyle belirtilen yere, belirtilen isimde kaydetmek icin kullanılan fonksiyondur. Dilerseniz aynı yolu gostererek bulunduğu path icerisinde sadece dosyanın ismini değiştirmenizde mumkundur.
Procedure TForm1.Button1Click(Sender; Object);
begin
RenameFile(‘C:\Deneme.txt’ , ‘C:\Avantaj.txt’);
end;
SelectDirectory(Klasor_Adı , Secenekler , Help);
Bu fonksiyon sayesinde, Select Directory penceresi actırılıp kullanıcının dizin secmesi veya yaratması sağlanabilir. Tabii Uses satırına FileCtrl eklemeyi unutmayalım.
Procedure TForm1.Button1Click(Sender; Object);
var
Yol : String;
begin
Yol := ‘C:\Program Files’;
If SelectDirectory(Yol , [sdAllowCreate , sdPerformCreate , sdPrompt] , 1000 ) Then
Caption := Yol;
end;
Yukarıdaki kodu yazıp programı calıştırırsanız, aşağıdaki pencerenin acılmasını sağlarsınız.
Bu Fonksiyonda birinci parametre Directory Name kısmında varsyılan olarak acılacağı yolu belirleyebilirsiniz. İkinci parametre icin secenekleri teker teker inceleyelim.
sdAllowCreate : Bu parametre sayesinde Directory Name edit kutusunun gozukup kullanıcının yeni bir klasor oluşturabilmesini sağlayabilirsiniz.
sdPerformCreate : Kullanıcının yeni bir klasor oluşturabilmesini sağlar.
sdPrompt :
Yanlış bir yol girildiği (olmayan bir yol) kullanıcıyı uyaracak pencerenin cıkıp cıkmamasını ayarlayan ozelliğidir. Şayet acılan pencereye kullanıcı Yes derse klasor oluşacaktır.
Şimdi yukarıdaki kodları ekleyip buton kontrolune tıklayınız. Olmayan bir klasor ismi belirtiniz. Uyarı penceresiyle karşılacaksınız. (tabii ki hata yapmadı iseniz) Pencereyi yes duğmesiyle kapatınız, klasorun oluştuğunu goreceksiniz.
ExtractFileDir(Dosya_Yolu);
Parametre ile girilen dosya yolunun bir ust klasorunun ismini donduren fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
var
Dosya : AnsiString;
begin
Dosya := ExtractFileDir(‘C:\WinNt\Deneme.txt’);
Caption := Dosya; // C:\WinNt yazar
end;
İc ice kullanabileceğimiz fonksiyonlarda var. Bunlardan en cok kullanılan calışan exe uygulamasının yolunu almaktır. Aşağıda ki işlemde Ornekler klasorunde Project1.exe uygulamasını inceleyiniz.
Procedure TForm1.Button1Click(Sender; Object);
begin
Caption := ExtractFileDir(Application.ExeName); // Mesela C:\Program Files\Ornekler
end;
ExtractFileDrive(Yol);
Parametreyle belirtilen yolun ait olduğu ana root (c,d,e,f, vs.) adını donduren fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
begin
Caption:= ExtractFileDrive(‘C:\WinNt\Deneme.txt’); // C yazar
end;
ExtractFileExt(Dosya_Yolu);
Parametre olarak girilen dosyanın uzantısını bulmak icin kullanılan bir fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
begin
Caption := ExtractFileExt(‘C:\WinNt\Deneme.txt’); // .Txt yazar
end;
ExtractFileName(Dosya_Yolu);
Parametre olarak girilen dosya yolundan dosyanın ismini sokup alabilen bir fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
begin
Caption := ExtractFileName(‘C:\WinNt\Deneme.txt’); // Deneme yazar
end;
ExtractFilePath(Dosya_Yolu);
Parametre olarak girilen dosya yolunun bulunduğu bir ust klasorun ismini donduren fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
begin
Caption := ExtractFilePath(‘C:\WinNt\Deneme.txt’); // C:\WinNt yazar
end;
ExtractShortPathName(Dosya_Yolu);
Parametre ile belirtilen dosya yolunu, dosya ismi sekiz (uzantısı haric) karakteri gecmeyecek şekilde gosteren bir fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
begin
Caption := ExtractShortPathName(‘C:\WinNt\Deneme123456789.txt ’);
end;
WinExec(Dosya_Yolu , Secenek);
Parametre ile girilen dosya yolundaki exe uzantılı dosyayı calıştırmak icin kullanılan (C’ de yazılmıştır) bir fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
begin
WinExec(‘C:\Avantaj\Ver6.1\Avantaj.Exe’ , SW_SHOW); // Avantaj uygulamasını calıştır
end;
Burada kullanılan birinci parametre katar tipinde bir değişken PChar tarafından tutulabilmektedir. Şayet edit kutusunda yazmış olduğunuz dosya yolundaki exe uygulamasını calıştırmak isterseniz aşağıdaki gibi bir kodlama kullanmalısınız.
Procedure TForm1.Button1Click(Sender; Object);
var
Dosya : PChar;
begin
Dosya := PChar(Edit1.Text); // Katarı AnsiStringe cevir
WinExec(Dosya , SW_SHOW);
end;
Fonksiyonda kullanılan ikinci parametre (girilmesi zorunludur) exe dosyasının calışma şeklini belirlemek icin kullanılmaktadır. Program ekranı kaplasın mı, taskbar da mı acılsın vs. seceneklerini bu parametreyle belirleyebilirsiniz. Aşağıda ikinci parametre yerine kullanabileceğiniz tum secenekler verilmiştir.
SW_HIDE=0;
SW_SHOW=5;
SW_SHOWNORMAL=1;
SW_MINIMIZE=6;
SW_NORMAL=1;
SW_SHOWMINNOACTIVATE=7;
SW_SHOWMINIMIZED=2;
SW_SHOWNA=8;
SW_SHOWMAXIMIZED=3;
SW_RESTORE=9;
SW_MAXIMIZE=3;
SW_SHOWDEFAULT=10;
SW_SHOWNOACTIVATE=4;
SW_MAX=10;
_________________
__________________
Delphide Klasor ve Dosya Fonksiyonları
Delphi0 Mesaj
●31 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama Dilleri
- Delphi
- Delphide Klasor ve Dosya Fonksiyonları