Разбира се, да започваме.
Получаване на файлове в директория е обичайна задача, практикувана в света на програмирането. Събирането на списъка с файлове в директория е операция, която вероятно ще срещнете, независимо дали е за зареждане на данни, сортиране на данни или просто за целите на манипулиране. Работата с директории в езици за програмиране като C++ може да бъде доста трудна и изисква добро разбиране на стандартната библиотека на езика и неговите функции.
C++ решение за достъп до файлове в директория
За получаване на файлове в директория ще използваме стандартната библиотека на файловата система, въведена в C++17. Тази библиотека ни помага да се справяме с файлове и директории. Ще се съсредоточим основно върху directory_iterator и пътя под тази библиотека, които са най-подходящи за нашия проблем.
Следващата функция може да се използва за извличане на всички файлове в директория:
#include
#include
void get_files_in_dir(const std::string& директория) {
за (const auto & запис: std::filesystem::directory_iterator(directory)) {
std::cout << entry.path() << std::endl; } } [/код]
Обяснение на кода стъпка по стъпка
Нека разбием функцията и да разберем как работи.
- Функцията започва с декларацията `void get_files_in_dir(const std::string& directory)`. Това декларира функция с име `get_files_in_dir`, която приема препратка към константен низ като аргумент и не връща нищо (void). Аргументът представлява директорията, от която искаме да извлечем файлове.
- След това се използва for цикъл, базиран на диапазон, за преминаване през всеки запис в директорията. `std::filesystem::directory_iterator(directory)` създава итеративен обект, който може да премине през всеки файл в посочената директория.
- Пътят до всеки файл в директорията се отпечатва с `std::cout << entry.path() << std::endl;` 'path()' е функция на класа 'directory_entry' и 'entry' е обект от същия клас. 'path()' връща тип 'path', съдържащ пълния път на 'entry'.
Силата на в C++
Работата с файлове става много важна, когато става въпрос за съхранение и извличане на данни. Трябва да съхраняваме данни по такъв начин, че да можем бързо да ги извлечем на по-късен етап. Едно от най-често срещаните места, където съхраняваме данни, са файловете.
C++
Наличието на класове, като directory_iterator и path, улеснява манипулирането и навигирането през директории. Кодът, който обсъдихме, е проста илюстрация на това колко мощна и лесна за разработчици е тази библиотека.
Често срещани приложения за достъп до файлове в директория
Обичайните случаи на употреба за получаване на файлове в директория са приложения с интензивно използване на данни, които трябва да сортират, зареждат или манипулират различни файлове с данни, съхранявани в структура на директория. Използва се за автоматизиране на задачи като копиране или преместване на файлове, сортиране на файлове въз основа на типове или като цяло за достъп до данни, разпределени в множество файлове в директория.
Не забравяйте, че ключът към овладяването на достъпа до файлове и директории се крие в разбирането и ефективното използване на наличните функции в библиотеката на файловата система. Може значително да улесни работата ви, особено когато работите с голям брой файлове.