Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
	}
Esempio n. 4
0
//-------------------------------------------------------------------------------
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;
}
Esempio n. 5
0
    /**
     * @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;
    }
Esempio n. 6
0
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;
}
Esempio n. 7
0
    /**
     * @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);
        }
    }
Esempio n. 8
0
//------------------------------------------------------------------------------
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;
}
Esempio n. 10
0
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;
}
Esempio n. 11
0
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;
}