Как да търсите файлове и папки с Delphi

click fraud protection

Когато търсите файлове, често е полезно и необходимо да търсите в подпапки. Ето, вижте как да използвате DelphiСилата е да създадете прост, но мощен проект за намиране на всички съвпадения.

Проект за търсене на файл / папка за маска

Следващият проект не само ви позволява да търсите файлове през подпапки, но също така ви позволява лесно да определяте файлови атрибути, като име, размер, дата на модификация и т.н. така че можете да видите кога да извикате диалоговия прозорец на свойствата на файла от Windows Explorer. По-специално, тя демонстрира как рекурсивно търсене през подпапки и сглобяване на списък с файлове, които съответстват на определена файлова маска. Техниката на рекурсия се определя като рутина, която се обажда в средата на своя код.

За да разберем кода в проекта, трябва да се запознаем със следващите три метода, дефинирани в единицата SysUtils: FindFirst, FindNext и FindClose.

FindFirst

FindFirst е призивът за инициализация за стартиране на подробна процедура за търсене на файлове с помощта

instagram viewer
Обаждания в API на Windows. Търсенето търси файлове, които съответстват на спецификатора Path. Пътят обикновено включва символи за заместване (* и?). Параметърът Attr съдържа комбинации от атрибути на файлове за контрол на търсенето. Разпознатите в Attr константи на файла са: faAnyFile (всеки файл), faDirectory (директории), faReadOnly (само за четене на файлове), faHidden (скрити файлове), faArchive (архивни файлове), faSysFile (системни файлове) и faVolumeID (файлове с идентификатор на обем).

Ако FindFirst открие един или повече съвпадащи файла, той връща 0 (или код за грешка за повреда, обикновено 18) и попълва Rec с информация за първия съвпадащ файл. За да продължим търсенето, трябва да използваме същия запис на TSearcRec и да го предадем на функцията FindNext. Когато търсенето приключи, трябва да се извика процедурата FindClose, за да се освободят вътрешни ресурси на Windows. TSearchRec е запис, дефиниран като:

Когато бъде намерен първият файл, параметърът Rec се попълва и следните полета (стойности) могат да бъдат използвани от вашия проект.
. ATTR, атрибутите на файла, както е описано по-горе.
. име съдържа низ, който представлява име на файл, без информация за пътя
. размер в байтове на намерения файл.
. път съхранява дата и час на модификацията на файла като дата на файла.
. FindData съдържа допълнителна информация, като например времето за създаване на файла, времето за последен достъп, както и дългите и кратки имена на файлове.

Намери следващото

Функцията FindNext е втората стъпка в подробната процедура за търсене на файлове. Трябва да предадете същия запис за търсене (Rec), който е създаден с повикването към FindFirst. Връщаната стойност от FindNext е нула за успех или код за грешка за всяка грешка.

FindClose

Тази процедура е задължителното извикване за прекратяване за FindFirst / FindNext.

Рекурсивна файлова маска, която съответства на търсенето в Delphi

Това е проектът „Търсене на файлове“, както се появява по време на изпълнение. Най-важните компоненти на формуляра са две полета за редактиране, едно поле със списък, квадратче за отметка и бутон. Полетата за редактиране се използват за определяне на пътя, в който искате да търсите, и маска на файла. Намерените файлове се показват в полето Списък и ако квадратчето за отметка е поставено, всички подпапки се сканират за съвпадение на файлове.

По-долу е малкият фрагмент на код от проекта, само за да покажем, че търсенето на файлове с Delphi е толкова лесно, колкото може да бъде:

instagram story viewer