JulyScanDir *scanDir = new JulyScanDir(this); scanDir->scanDir("C:\\Films","*.avi"); // задание параметров поиска и запуск
JulyScanDir *scanDir = new JulyScanDir(this); scanDir->setStartDir("C:\\Films"); // задает папку или список папок разделенных ;; или через QStringList scanDir->setSearchSubFolders(false); // ищем файлы только в одной папке scanDir->setSubFoldersFirst(true); // класс в текущей директории сначала сканирует папки а потом файлыQStringList filtersList; filtersList << "*.avi" << "*.mpg"; // задание маски файлов scanDir->setFilesFilter(filtersList); scanDir->scanDir(); // запуск поиска
void dirChanged(QString); // Во время поиска возвращает полный адрес следующей директорииvoid fileChanged(QString); // Во время поиска возвращает полный адрес текущего файлаvoid fileChanged(QFileInfo); // Во время поиска возвращает полную информацию о файлеvoid numChanged(int); // Во время поиска возвращает последовательный номер найденого файлаvoid loadedList(QStringList); // По завершению поиска возвращает список найденых файловvoid errorHeppend(int); // Если случилась ошибка то возвращает: 0 если не найдено никаких файлов // и 1 если заданая папка поиска не существует
void setIgnoreDirs(QStringList); // задает список полных адресов папок что будут пропущены в поискеvoid setIgnoreDirs(QString); // задает одну папку что будет пропущена в поиске или список папок через ;;void clearIgnoreDirs(); // очищает и отключает список игнорируемых папокvoid setRegExp(QRegExp fileRegExp); // задание регулярного выражения, если оно верно к имени файла он будет выведен в результате, в противном случае пропущенvoid clearRegExp(); // очищает и отключает RegExpvoid setScanHidden(bool hidden); // задает фильтр поиска, искать ли скрытые файлы и папки
C++ (Qt)QFileInfoList dirs;dirs << QFileInfo( path );while ( !dirs.isEmpty() ){ QFileInfo dirInfo = dirs.takeFirst(); for ( QListIterator<QFileInfo> it( QDir( dirInfo.path() ).entryInfoList( flags ) ); it.hasNext(); ) { const QFileInfo & newDirInfo = it.next(); // handle it dirs << newDirInfo; }}
C++ (Qt)QFileInfoList dirs;dirs << QFileInfo( "." ); while ( !dirs.isEmpty() ) { QFileInfo dirInfo = dirs.takeFirst(); for ( QListIterator<QFileInfo> it( QDir( dirInfo.path() ).entryInfoList( QDir::NoDotAndDotDot ) ); it.hasNext(); ) { const QFileInfo & newDirInfo = it.next(); dirs << newDirInfo; }}
main.cpp: In member function ‘void MyClass::MyFunc()’:main.cpp:46: ошибка: invalid use of incomplete type ‘struct QDir’/usr/include/qt4/QtCore/qfileinfo.h:55: ошибка: forward declaration of ‘struct QDir’main.cpp:46: ошибка: неполный тип ‘QDir’ использован во вложенном спецификаторе имениmake: *** [main.o] Ошибка 1
C++ (Qt)QFileInfoList dirs; dirs << QFileInfo( "." ); while ( !dirs.isEmpty() ) { QFileInfo dirInfo = dirs.takeFirst(); for ( QListIterator<QFileInfo> it( QDir( dirInfo.path() ).entryInfoList( QDir::NoDotAndDotDot | QDir::Dirs | QDir::Files ) ); it.hasNext(); ) { const QFileInfo &newDirInfo = it.next(); dirs << newDirInfo; printf( "%s\n", newDirInfo.absoluteFilePath().toAscii().constData() ); } }
while ( !dirs.isEmpty() )
C++ (Qt)void ScanDir(const QString& path) { QDirIterator it(path, QDir::Files|QDir::Dirs|QDir::NoDotAndDotDot, QDirIterator::Subdirectories ); while ( it.hasNext() ) { QFileInfo fi = it.fileInfo(); ... it.next(); }}