Πώς να αναζητήσετε αρχεία και φακέλους με Delphi

click fraud protection

Όταν αναζητάτε αρχεία, είναι συχνά χρήσιμο και απαραίτητο να κάνετε αναζήτηση μέσω των υποφακέλων. Εδώ, δείτε πώς να χρησιμοποιήσετε Δελφοί's δύναμη να δημιουργήσει ένα απλό, αλλά ισχυρό, βρείτε - όλα - ταίριασμα - αρχεία έργου.

Πρόγραμμα αναζήτησης φακέλων αρχείων / φακέλων

Το ακόλουθο πρόγραμμα όχι μόνο σας επιτρέπει να αναζητάτε αρχεία μέσω υποφακέλων, αλλά επίσης σας επιτρέπει να προσδιορίζετε εύκολα χαρακτηριστικά αρχείου, όπως όνομα, μέγεθος, ημερομηνία τροποποίησης κ.λπ. έτσι μπορείτε να δείτε πότε να καλέσετε το παράθυρο διαλόγου Ιδιότητες αρχείου από το Windows Explorer. Ειδικότερα, δείχνει πώς να αναζητάει αναδρομικά μέσω των υποφακέλων και να συγκεντρώνει μια λίστα αρχείων που ταιριάζουν με μια συγκεκριμένη μάσκα αρχείων. Η τεχνική της επανάληψης ορίζεται ως μια ρουτίνα που αποκαλείται στη μέση του κώδικα της.

Για να κατανοήσουμε τον κώδικα στο έργο, πρέπει να εξοικειωθούμε με τις επόμενες τρεις μεθόδους που ορίζονται στη μονάδα SysUtils: FindFirst, FindNext και FindClose.

FindFirst

instagram viewer

Το FindFirst είναι η κλήση προετοιμασίας για να ξεκινήσετε μια λεπτομερή διαδικασία αναζήτησης αρχείων χρησιμοποιώντας Οι κλήσεις API των Windows. Η αναζήτηση αναζητά αρχεία που ταιριάζουν με τον προσδιοριστή διαδρομής. Η διαδρομή περιλαμβάνει συνήθως χαρακτήρες μπαλαντέρ (* και?). Η παράμετρος Attr περιέχει συνδυασμούς χαρακτηριστικών αρχείου για τον έλεγχο της αναζήτησης. Οι σταθερές χαρακτηριστικών αρχείου που αναγνωρίζονται στο Attr είναι: faAnyFile (οποιοδήποτε αρχείο), faDirectory (καταλόγους), faReadOnly (αρχεία μόνο για ανάγνωση), faHidden (κρυφά αρχεία), faArchive (αρχεία αρχειοθέτησης), faSysFile (αρχεία συστήματος) και faVolumeID (αρχεία αναγνωριστικών όγκου).

Εάν το FindFirst εντοπίσει ένα ή περισσότερα αντίστοιχα αρχεία επιστρέφει 0 (ή κωδικό σφάλματος για αποτυχία, συνήθως 18) και συμπληρώνει το Rec με πληροφορίες σχετικά με το πρώτο αρχείο που ταιριάζει. Για να συνεχίσουμε την αναζήτηση, πρέπει να χρησιμοποιήσουμε την ίδια εγγραφή TSearcRec και να την μεταβιβάσουμε στη λειτουργία FindNext. Όταν ολοκληρωθεί η αναζήτηση, πρέπει να καλείται η διαδικασία FindClose για να ελευθερώσετε εσωτερικούς πόρους των Windows. Το TSearchRec είναι ένα αρχείο που ορίζεται ως:

Όταν εντοπιστεί το πρώτο αρχείο, συμπληρώνεται η παράμετρος Rec και τα παρακάτω πεδία (τιμές) μπορούν να χρησιμοποιηθούν από το έργο σας.
. Attr, τα χαρακτηριστικά του αρχείου όπως περιγράφεται παραπάνω.
. Ονομα διατηρεί μια συμβολοσειρά που αντιπροσωπεύει ένα όνομα αρχείου, χωρίς πληροφορίες διαδρομής
. Μέγεθος σε bytes του αρχείου που βρέθηκε.
. χρόνος αποθηκεύει την ημερομηνία και την ώρα τροποποίησης του αρχείου ως ημερομηνία αρχείου.
. FindData περιέχει πρόσθετες πληροφορίες, όπως είναι ο χρόνος δημιουργίας αρχείου, ο τελευταίος χρόνος πρόσβασης και τα μεγάλα και μικρά ονόματα αρχείων.

FindNext

Η λειτουργία FindNext είναι το δεύτερο βήμα της λεπτομερούς διαδικασίας αναζήτησης αρχείων. Πρέπει να περάσετε την ίδια εγγραφή αναζήτησης (Rec) που έχει δημιουργηθεί από την κλήση στο FindFirst. Η τιμή επιστροφής από το FindNext είναι μηδέν για επιτυχία ή κωδικό σφάλματος για οποιοδήποτε σφάλμα.

FindClose

Αυτή η διαδικασία είναι η απαιτούμενη κλήση τερματισμού για ένα FindFirst / FindNext.

Επαναληπτική μάσκα αρχείων που ταιριάζει με την αναζήτηση στους Δελφούς

Αυτό είναι το έργο "Αναζήτηση αρχείων" όπως εμφανίζεται κατά το χρόνο εκτέλεσης. Τα πιο σημαντικά στοιχεία στη φόρμα είναι δύο πλαίσια επεξεργασίας, ένα πλαίσιο λίστας, ένα πλαίσιο ελέγχου και ένα κουμπί. Τα πλαίσια επεξεργασίας χρησιμοποιούνται για να καθορίσετε τη διαδρομή στην οποία θέλετε να αναζητήσετε και μια μάσκα αρχείων. Τα εντοπισμένα αρχεία εμφανίζονται στο πλαίσιο λίστας και αν το πλαίσιο ελέγχου είναι επιλεγμένο, τότε όλοι οι υποφακέλοι σαρώνονται για τα αντίστοιχα αρχεία.

Παρακάτω είναι το απόσπασμα μικρού κώδικα από το έργο, για να δείξουμε ότι η αναζήτηση αρχείων με Delphi είναι τόσο εύκολη όσο μπορεί να είναι:

instagram story viewer