फ़ाइलों की तलाश करते समय, अक्सर सबफ़ोल्डर्स के माध्यम से खोज करना उपयोगी और आवश्यक होता है। यहाँ, उपयोग करने का तरीका देखें डेल्फीएक सरल, लेकिन शक्तिशाली, खोजने के लिए सभी-मिलान-फाइल परियोजना बनाने की ताकत।
फ़ाइल / फ़ोल्डर मास्क खोज परियोजना
निम्न प्रोजेक्ट न केवल आपको सबफ़ोल्डर्स के माध्यम से फ़ाइलों की खोज करने देता है, बल्कि यह आपको फ़ाइल विशेषताओं, जैसे नाम, आकार, संशोधन तिथि, आदि को आसानी से निर्धारित करने देता है। इसलिए आप देख सकते हैं कि कब से फ़ाइल गुण संवाद लागू करना है विन्डोज़ एक्सप्लोरर. विशेष रूप से, यह प्रदर्शित करता है कि कैसे सबफ़ोल्डर्स के माध्यम से पुन: खोज करें और एक निश्चित फ़ाइल मास्क से मेल खाने वाली फ़ाइलों की सूची को इकट्ठा करें। पुनरावृत्ति की तकनीक को एक दिनचर्या के रूप में परिभाषित किया गया है जो अपने कोड के बीच में ही कॉल करता है।
परियोजना में कोड को समझने के लिए, हमें SysUtils इकाई में परिभाषित अगले तीन तरीकों से खुद को परिचित करना होगा: FindFirst, FindNext, और FindClose।
FindFirst
FindFirst एक विस्तृत फ़ाइल खोज प्रक्रिया का उपयोग करने के लिए इनिशियलाइज़ेशन कॉल है
विंडोज एपीआई कॉल. खोज उन फ़ाइलों की तलाश करती है जो पथ निर्दिष्टकर्ता से मेल खाती हैं। पथ में आमतौर पर वाइल्डकार्ड वर्ण (* और?) शामिल हैं। Attr पैरामीटर में खोज को नियंत्रित करने के लिए फ़ाइल विशेषताओं का संयोजन होता है। Attr में मान्यता प्राप्त फ़ाइल विशेषता स्थिरांक हैं: faAnyFile (कोई भी फ़ाइल), faDirectory (निर्देशिका), faReadOnly (केवल फाइलें पढ़ें), faHidden (छिपी हुई फ़ाइलें), फ़ेसिव (संग्रह फ़ाइलें), faSysFile (सिस्टम फ़ाइलें) और faVolumeID (वॉल्यूम आईडी फ़ाइलें)।यदि FindFirst एक या अधिक मेल खाने वाली फ़ाइलों को पाता है, तो यह 0 (या विफलता के लिए एक त्रुटि कोड, आमतौर पर 18) और पहले मिलान फ़ाइल के बारे में जानकारी के साथ Rec में भरता है। खोज जारी रखने के लिए, हमें उसी TSearcRec रिकॉर्ड का उपयोग करना होगा और इसे FindNext फ़ंक्शन में पास करना होगा। जब खोज पूरी हो जाती है तो FindClose प्रक्रिया को आंतरिक विंडोज संसाधनों को मुक्त करने के लिए कहा जाना चाहिए। TSearchRec एक रिकॉर्ड के रूप में परिभाषित किया गया है:
जब पहली फ़ाइल मिल जाती है तो Rec पैरामीटर भरा जाता है, और आपके प्रोजेक्ट द्वारा निम्नलिखित फ़ील्ड (मान) का उपयोग किया जा सकता है।
. aTTR, फ़ाइल की विशेषताओं के रूप में ऊपर वर्णित है।
. नाम एक स्ट्रिंग रखता है जो पथ जानकारी के बिना, एक फ़ाइल नाम का प्रतिनिधित्व करता है
. आकार फ़ाइल के बाइट्स में पाया गया।
. समय फ़ाइल की संशोधन तिथि और समय को फ़ाइल तिथि के रूप में संग्रहीत करता है।
. FindData फ़ाइल निर्माण समय, अंतिम पहुंच समय और लंबी और छोटी फ़ाइल नाम दोनों के रूप में अतिरिक्त जानकारी शामिल है।
अगला ढूंढो
FindNext फ़ंक्शन विस्तृत फ़ाइल खोज प्रक्रिया का दूसरा चरण है। आपको वही खोज रिकॉर्ड (Rec) पास करना होगा जो कि FindFirst को कॉल द्वारा बनाया गया है। FindNext से वापसी का मूल्य सफलता के लिए शून्य है या किसी त्रुटि के लिए त्रुटि कोड है।
FindClose
यह प्रक्रिया FindFirst / FindNext के लिए आवश्यक समाप्ति कॉल है।
डेल्फी में खोज के लिए मिलान फ़ाइल मास्क
यह "फाइलों की खोज" प्रोजेक्ट है क्योंकि यह रन टाइम पर दिखाई देता है। प्रपत्र पर सबसे महत्वपूर्ण घटक दो संपादित बॉक्स, एक सूची बॉक्स, एक चेकबॉक्स और एक बटन हैं। जिस बॉक्स में आप सर्च करना चाहते हैं उसे निर्दिष्ट करने के लिए एडिट बॉक्स का उपयोग किया जाता है और फाइल मास्क। मिली फ़ाइलों को सूची बॉक्स में प्रदर्शित किया जाता है और यदि चेकबॉक्स की जाँच की जाती है, तो सभी सबफ़ोल्डर्स का मिलान फ़ाइलों के लिए किया जाता है।
नीचे परियोजना से छोटा कोड स्निपेट है, बस यह दिखाने के लिए कि डेल्फी के साथ फाइलों की खोज करना जितना आसान हो सकता है: