bool WinFileSystem::find(const FindInfo& findinfo, std::vector<String>& result, bool recursive) { WIN32_FIND_DATA ffd; String mask = File::concat(findinfo.path, findinfo.filemask); HANDLE hFind = FindFirstFileEx(mask.c_str(), FindExInfoBasic, &ffd, FindExSearchNameMatch, NULL, 0); if ( hFind != INVALID_HANDLE_VALUE ) { do { String name(ffd.cFileName); if ( !IS_SET(ffd.dwFileAttributes, FILE_ATTRIBUTE_DIRECTORY) ) { result.push_back(File::concat(findinfo.path, name)); } } while ( FindNextFile(hFind, &ffd) != 0 ); DWORD dwError = GetLastError(); FindClose(hFind); if (dwError != ERROR_NO_MORE_FILES) return false; } return recursive ? recursiveFind(findinfo, result) : true; }
void recursiveFind(int *sequence, int length, int counter, char *string) { int i; if (counter == length) { printf("%s\n", string); return; } if (sequence[counter] >= 2) { for (i=1; i<=3; i++) { string[counter] = getCharKey(sequence[counter], i); recursiveFind(sequence, length, counter+1, string); } } else { string[counter] = '0' + sequence[counter]; recursiveFind(sequence, length, counter+1, string); } }
void JDMainWin::recursiveFind(const QString& dir) { QString tmp = currentDir_; commands_->ls(dir); QStringList dirs = model_->dirs(dir); foreach(const QString& d, dirs) { currentDir_ += d; recursiveFind(currentDir_); currentDir_ = tmp; }
//------------------------------------------------------------------------------- QStringList getListModulesFromPath(QString path, QString format) { QStringList files = recursiveFind(path); QStringList list; for(int i = 0; i < files.size(); i++) { if(files.at(i).indexOf(format) >= 0 or files.at(i).indexOf(format.toUpper()) >= 0) { list << files.at(i); } } return list; }
/** * @brief Database::makeDepthIdList * @param id * @return */ QStringList Database::makeDepthIdList(const QString &id) const { QStringList result; if (containsScope(id)) { result << id; } else { for (auto scope : m_Scopes.values()) { recursiveFind(scope, id, result); if (!result.empty()) break; } } return result; }
int main(int argc, char **argv) { int sequence[LEN] = { 8, 0, 6 }; char *string; string = malloc(LEN * sizeof(char)); string[LEN] = '\0'; printf("recursive find:\n"); recursiveFind(sequence, LEN, 0, string); printf("\niterative find:\n"); iterativeFind(sequence, LEN, string); return EXIT_SUCCESS; }
/** * @brief Database::recursiveFind * @param scope * @param id * @param ids */ void Database::recursiveFind(entity::SharedScope scope, const QString &id, QStringList &ids) const { if (scope->scopes().isEmpty()) { ids.clear(); return; } ids << scope->id(); if (scope->containsChildScope(id)) { ids << scope->getChildScope(id)->id(); return; } else { for (auto sc : scope->scopes()) recursiveFind(sc, id, ids); } }
//------------------------------------------------------------------------------ QStringList getListImages(const QString number, const QString path) { QStringList list; QStringList listNumbers; list = recursiveFind(path); // myDebug() << path; for (int i = 0; i < list.size(); i++) { if (list.at(i).indexOf("/" + number + "_") >= 0) { listNumbers << list.at(i); // myDebug() << list.at(i); } } return listNumbers; }
void JDMainWin::refresh() { refreshInProgres_ = true; ui_.pb_refresh->setEnabled(false); ui_.pb_send->setEnabled(false); model_->clear(); commands_->cd(JDModel::rootPath()); currentDir_.clear(); recursiveFind(currentDir_); ui_.lv_disk->expand(model_->rootIndex()); ui_.lv_disk->setCurrentIndex(model_->rootIndex()); ui_.pb_refresh->setEnabled(true); ui_.pb_send->setEnabled(true); refreshInProgres_ = false; }
bool Bundle::open() { if (!m_tempDir) { initTempDir(); } if (m_data.isEmpty()) { return false; } QBuffer buffer(&m_data); KZip zip(&buffer); if (!zip.open(QIODevice::ReadOnly)) { qWarning("Couldn't open the bundle!"); return false; } const KArchiveDirectory *dir = zip.directory(); const KArchiveDirectory *foundDir = recursiveFind(dir); if (!foundDir) { qWarning("not a bundle"); m_isValid = false; zip.close(); return 0; } m_isValid = extractArchive(foundDir, QLatin1String("")); qDebug()<<"Dir = "<<foundDir->name() << m_isValid; if (m_isValid) { setPath(m_tempDir->name()); } zip.close(); return m_isValid; }
static const KArchiveDirectory *recursiveFind(const KArchiveDirectory *dir) { const QStringList l = dir->entries(); QStringList::const_iterator it; for (it = l.constBegin(); it != l.constEnd(); ++it) { const KArchiveEntry* entry = dir->entry((*it)); if (entry->isDirectory()) { QString name = *it; if (name.startsWith(QLatin1String("__MACOSX"))) { //skip this continue; } else if (name.endsWith(QLatin1String(".wdgt"))) { //got our bad boy return static_cast<const KArchiveDirectory*>(entry); } else { const KArchiveDirectory *fd = recursiveFind(static_cast<const KArchiveDirectory*>(entry)); if (fd) return fd; } } } return 0; }