現在、Visual Studio 9 といくつかの QT ツールを使用して C++ アプリケーションを開発しています。私のdirentバージョンは1.13です。このバージョンを VS インストールと一緒に入手したのか、それともダウンロード フォルダーにあるものと置き換えたのか思い出せません。
とにかく、私のアプリケーションは以下のコードを使用して、サブディレクトリをスキャンする選択されたマップされたネットワーク ドライブのユーザー入力を取得しています。ただし、以下のアプローチではすべてのアイテムが返されるわけではありません。現時点ではサブディレクトリは 112 個しかありませんが、ループは "." を含む 101 個のアイテムしか取得しません。と「..」項目。以前にこれに遭遇したことのある人、または提案された解決策を持っている人はいますか?
ありがとうございました。
DIR *dir1;
struct dirent *ent1;
QByteArray ba;
QString directory = QFileDialog::getExistingDirectory(this,
tr("Find Files"), QDir::currentPath());
QDirIterator dirIt(directory,QDirIterator::Subdirectories);
ba = directory.toLocal8Bit();
if ((dir1 = opendir (ba.data())) != NULL)
{
ctr = 0;
while ((ent1 = readdir (dir1)) != NULL)
{
ctr++;
qDebug()<<ctr<<". "<<ent1->d_name;
}
}