Delphi ile Dosya ve Klasörleri Arama

Dosya ararken, alt klasörler arasında arama yapmak genellikle yararlı ve gereklidir. Burada, nasıl kullanılacağını görün Delphibasit ama güçlü, tüm dosyaları bulmaya uygun bir proje yaratma gücü.

Dosya / Klasör Maskesi Arama Projesi

Aşağıdaki proje yalnızca alt klasörler üzerinden dosya aramanıza izin vermekle kalmaz, aynı zamanda Ad, Boyut, Değişiklik Tarihi gibi dosya özniteliklerini kolayca belirlemenizi sağlar. böylece Dosya Özellikleri İletişim Kutusunu ne zaman çağırmanız gerektiğini görebilirsiniz. Windows Gezgini. Özellikle, alt klasörlerde özyinelemeli olarak nasıl arama yapılacağını ve belirli bir dosya maskesiyle eşleşen dosyaların bir listesini nasıl oluşturacağınızı gösterir. Özyineleme tekniği, kodunun ortasında kendini çağıran bir rutin olarak tanımlanır.

Projedeki kodu anlamak için, SysUtils biriminde tanımlanan sonraki üç yönteme aşina olmalıyız: FindFirst, FindNext ve FindClose.

FindFirst

FindFirst, aşağıdakileri kullanarak ayrıntılı bir dosya arama yordamı başlatmak için başlatma çağrısıdır.

instagram viewer
Windows API çağrıları. Arama, Yol belirticiyle eşleşen dosyaları arar. Yol genellikle joker karakterler (* ve?) İçerir. Attr parametresi, aramayı denetlemek için dosya özniteliklerinin birleşimlerini içerir. Attr'da tanınan dosya özniteliği sabitleri şunlardır: faAnyFile (herhangi bir dosya), faDirectory (Dizinleri), faReadOnly (salt okunur dosyalar), faHidden (gizli dosyalar), faArchive (arşiv dosyaları), faSysFile (sistem dosyaları) ve faVolumeID (birim kimlik dosyaları).

FindFirst bir veya daha fazla eşleşen dosya bulursa 0 (veya hata için bir hata kodu, genellikle 18) döndürür ve Rec dosyasını ilk eşleşen dosya hakkındaki bilgilerle doldurur. Aramaya devam etmek için aynı TSearcRec kaydını kullanmalı ve FindNext fonksiyonuna aktarmalıyız. Arama tamamlandığında, dahili Windows kaynaklarını serbest bırakmak için FindClose prosedürü çağrılmalıdır. TSearchRec şu şekilde tanımlanan bir kayıttır:

İlk dosya bulunduğunda Rec parametresi doldurulur ve projeniz tarafından aşağıdaki alanlar (değerler) kullanılabilir.
. attr, dosyanın özellikleri yukarıda açıklandığı gibidir.
. ad yol bilgisi olmadan dosya adını temsil eden bir dize tutar
. Boyut bulunan dosyanın bayt cinsinden.
. zaman dosyanın değişiklik tarihini ve saatini dosya tarihi olarak saklar.
. FindData dosya oluşturma zamanı, son erişim zamanı ve hem uzun hem de kısa dosya adları gibi ek bilgiler içerir.

Sonraki Bul

FindNext işlevi, ayrıntılı dosya arama yordamındaki ikinci adımdır. FindFirst çağrısı ile oluşturulan aynı arama kaydını (Rec) iletmeniz gerekir. FindNext'ten döndürülen değer, başarı için sıfır veya herhangi bir hata için bir hata kodudur.

FindClose

Bu yordam, FindFirst / FindNext için gerekli sonlandırma çağrısıdır.

Delphi arama eşleşen özyinelemeli dosya maskesi

Bu, çalışma zamanında göründüğü şekliyle "Dosyaları arama" projesidir. Formdaki en önemli bileşenler iki düzenleme kutusu, bir liste kutusu, bir onay kutusu ve bir düğmedir. Düzenleme kutuları, aramak istediğiniz yolu ve bir dosya maskesini belirtmek için kullanılır. Bulunan dosyalar Liste kutusunda görüntülenir ve onay kutusu işaretlenirse, tüm alt klasörler eşleşen dosyalar için taranır.

Aşağıda, Delphi ile dosya aramanın olabildiğince kolay olduğunu göstermek için projeden küçük kod snippet'i verilmiştir: