C de Recursive Mantık İle Dizin Ağacı Oluşturan Fonksiyon Tasarlanması

Öncelikli olarak bu fonksiyonun ne yapıcağından bahsedelim.

Fonksiyonumuz kök dizin olarak verilen dizinin altdizinleride dahil olmak üzere dolaşıcak ve tüm alt dizinlerdeki dosyaları bize göstericek.

Gereklilikler : global bir karakter katarı,özyinemeli bir fonksiyon, dizin ağacında ileri geri hareket edebilmek için gerekli iki ayrı fonksiyon.

Burada:

 “windows.h” başlık dosyası projeye dahil edildi.

AddPath ,DelPath ve ViewTree fonksiyonlarının prototipleri tanımlandı.

Path isminde dizinlerin yolunu tutucak ve bu dizinler içerisinde geçiş yaparken aktif eleman olarak görev alıcak karakter katarı tanımlandı.

ViewTree Fonksiyonu

Açiklamalar:

1-) HANDLE , typedef (void *) şeklinde tanımlanmış bir bildirimdir.W32 programlamada sıkça adı geçer.Bir adres gösterir.Tabiki fiziksel olarak tam bir adrese karşılık gelmez.

2-)WIN32_FIND_DATA bir yapıdır.Döküman sonunda içeriği paylaşılacaktır.

3-)Burada if koşulu handle’ın INVALID_HANDLE_VALUE olup olmadığına bakıyor.

Eğer öyleyse FindFirstFile fonksiyonu başarısız olmuştur.Bunun için uyarı yapılıyor.

#define INVALID_HANDLE_VALUE ((void *)-1)

Şeklinde tanımlanmış bir sabittir.

4-)Dosya ismi “.” Veya “..” ise ekrana yazdırılmıyor.

5-)Burada dosya özniteliği eğer directory ( klasör ) ise

Fonksiyonumuz AddPath fonksiyonunu çağırıyor ve klasörün ismini global Path katarına ekliyor.Ardından,

Fonksiyon kendi kendisini çağırarak, bu seferde bu klasör içerisini dolaşıyor.

6-)Sadece fonksiyonun akışı izlenebilsin diye eklenmiştir.

7-)Dolaşımı diğer dosyaya geçirir.Bunu yaparken while içerisinde döndürdüğü değer kontrol edilir.Eğer FALSE(0) ise döngü sona erer,eğer TRUE(0 dışı bi değer) ise döngü devam eder.

8-)DelPath fonksiyonu çağrılıyor ve son eklenen dizinin dolaşımı tamamlandığı için global Path katarından kaldırılıyor.

Tarih:
Hit: 3298
Yazar: guru



Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.