QDirIterator Class Reference

[QtCore module]

该QDirIterator类提供了一个迭代器目录entrylists 。More…

Types

  • enum IteratorFlag { NoIteratorFlags, FollowSymlinks, Subdirectories }
  • class **[IteratorFlags]($docs-index.htm)**

Methods

  • __init__ (self, QDir dir, IteratorFlags flags = QDirIterator.NoIteratorFlags)
  • __init__ (self, QString path, IteratorFlags flags = QDirIterator.NoIteratorFlags)
  • __init__ (self, QString path, QDir.Filters filters, IteratorFlags flags = QDirIterator.NoIteratorFlags)
  • __init__ (self, QString path, QStringList nameFilters, QDir.Filters filters = QDir.NoFilter, IteratorFlags flags = QDirIterator.NoIteratorFlags)
  • QFileInfo fileInfo (self)
  • QString fileName (self)
  • QString filePath (self)
  • bool hasNext (self)
  • QString next (self)
  • QString path (self)

Detailed Description

该QDirIterator类提供了一个迭代器目录entrylists 。

您可以使用QDirIterator来浏览一个目录的一个条目的时间。它类似于QDir.entryList()和QDir.entryInfoList( ) ,而是因为它会列出在一次项目,而不是所有的一次,它扩展更好,更适合大型目录。它还支持列表目录内容递归,和下面的符号链接。不像QDir.entryList( ) , QDirIterator不支持排序。

该QDirIterator构造函数接受一个QDir或一个目录作为参数。施工完毕后,迭代器所在的第一个目录条目之前。以下是如何遍历所有的条目顺序:

  1. QDirIterator it("/etc", QDirIterator.Subdirectories);
  2. while (it.hasNext()) {
  3. qDebug() << it.next();
  4. // /etc/.
  5. // /etc/..
  6. // /etc/X11
  7. // /etc/X11/fs
  8. // ...
  9. }

next( )函数返回路径的下一个目录项及垫款的迭代器。您也可以拨打filePath( )来得到当前文件的路径,而不推进迭代器。该fileName( )函数返回文件的唯一的名称,类似于如何QDir.entryList( )的作品。您也可以拨打fileInfo( )来获取QFileInfo当前条目。

不同于Qt的容器迭代器, QDirIterator是单向的(也就是说,你不能遍历目录,以相反的顺序),并不允许随机访问。

QDirIterator适用于所有支持的文件引擎,并使用实施QAbstractFileEngineIterator


Type Documentation

  1. QDirIterator.IteratorFlag

这个枚举变量描述的标志,你可以结合配置的行为QDirIterator

Constant Value Description
QDirIterator.NoIteratorFlags 0x0 默认值,表示没有任何标志。迭代器将返回条目指定路径。
QDirIterator.Subdirectories 0x2 所有子目录里面的列表条目。
QDirIterator.FollowSymlinks 0x1 当与子目录结合,这个标志能够循环访问指定路径下的所有子目录,下面所有的符号链接。符号链接循环(例如, “链接” = \u003e “ 。 ”或“链接” = \u003e “..” )会自动检测和忽略。

该IteratorFlags类型是一个typedef为QFlags\u003cIteratorFlag\u003e 。它存储IteratorFlag值的或组合。


Method Documentation

  1. QDirIterator.__init__ (self, QDir dir, IteratorFlags flags = QDirIterator.NoIteratorFlags)

构造一个QDirIterator可以遍历dir的entrylist ,使用dir的名字过滤器和常规过滤器。你可以通过传递选项flags决定如何在目录应该被重复。

默认情况下,flags is NoIteratorFlags,它提供了相同的行为QDir.entryList( ) 。

在分选dir被忽略。

Note:要列出指向不存在的文件的符号链接,QDir.System必须被传递给标记。

See also hasNext( )next()和IteratorFlags

  1. QDirIterator.__init__ (self, QString path, IteratorFlags flags = QDirIterator.NoIteratorFlags)

构造一个QDirIterator可以遍历path。你可以通过传递选项flags决定如何在目录应该被重复。

默认情况下,flags is NoIteratorFlags,它提供了相同的行为QDir.entryList( ) 。

Note:要列出指向不存在的文件的符号链接,QDir.System必须被传递给标记。

See also hasNext( )next()和IteratorFlags

  1. QDirIterator.__init__ (self, QString path, QDir.Filters filters, IteratorFlags flags = QDirIterator.NoIteratorFlags)

构造一个QDirIterator可以遍历path,没有名字过滤和filters入门过滤。你可以通过传递选项flags决定如何在目录应该被重复。

默认情况下,filters is QDir.NoFilterflags is NoIteratorFlags,它提供了相同的行为QDir.entryList( ) 。

Note:要列出指向不存在的文件的符号链接,QDir.System必须被传递给标记。

See also hasNext( )next()和IteratorFlags

  1. QDirIterator.__init__ (self, QString path, QStringList nameFilters, QDir.Filters filters = QDir.NoFilter, IteratorFlags flags = QDirIterator.NoIteratorFlags)

构造一个QDirIterator可以遍历path,使用nameFiltersfilters。你可以通过传递选项flags决定如何在目录应该被重复。

默认情况下,flags is NoIteratorFlags,它提供了相同的行为,QDir.entryList( ) 。

Note:要列出指向不存在的文件的符号链接,QDir.System必须被传递给标记。

See also hasNext( )next()和IteratorFlags

  1. QFileInfo QDirIterator.fileInfo (self)

返回QFileInfo当前目录项。

See also filePath()和fileName( ) 。

  1. QString QDirIterator.fileName (self)

返回当前目录项的文件名,不带前缀的路径。

遍历一个目录时,此功能非常方便。当使用QDirIterator.Subdirectories标志,你可以使用filePath( )来得到完整的路径。

See also filePath()和fileInfo( ) 。

  1. QString QDirIterator.filePath (self)

返回当前目录项的完整文件路径。

See also fileInfo()和fileName( ) 。

  1. bool QDirIterator.hasNext (self)

返回True如果没有在目录中至少有一个以上的项目,否则,则返回False。

See also next( )fileName( )filePath()和fileInfo( ) 。

  1. QString QDirIterator.next (self)

前进迭代到下一个条目,并返回该新条目的文件路径。如果hasNext( )返回False ,这个函数不执行任何操作,并返回一个空QString

您可以致电fileName()或filePath( )来获得当前的输入文件名或路径,或fileInfo( )来获取QFileInfo当前条目。

See also hasNext( )fileName( )filePath()和fileInfo( ) 。

  1. QString QDirIterator.path (self)