<class name="QDirIterator" doc="/** <p>The <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> class provides an iterator for directory entrylists.</p> <p>You can use <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> to navigate entries of a directory one at a time. It is similar to QDir::entryList() and QDir::entryInfoList(), but because it lists entries one at a time instead of all at once, it scales better and is more suitable for large directories. It also supports listing directory contents recursively, and following symbolic links. Unlike QDir::entryList(), <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> does not support sorting.</p> <p>The <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> constructor takes a <a href="QDir.html"><tt>QDir</tt></a> or a directory as argument. After construction, the iterator is located before the first directory entry. Here's how to iterate over all the entries sequentially:</p> <pre> QDirIterator it(&quot;/etc&quot;, QDirIterator::Subdirectories); while (it.hasNext()) { qDebug() &lt;&lt; it.next(); <span class="comment">// /etc/.</span> <span class="comment">// /etc/..</span> <span class="comment">// /etc/X11</span> <span class="comment">// /etc/X11/fs</span> <span class="comment">// ...</span> }</pre> <p>The <a href="QDirIterator.html#next()"><tt>next</tt></a> function returns the path to the next directory entry and advances the iterator. You can also call <a href="QDirIterator.html#filePath()"><tt>filePath</tt></a> to get the current file path without advancing the iterator. The <a href="QDirIterator.html#fileName()"><tt>fileName</tt></a> function returns only the name of the file, similar to how QDir::entryList() works. You can also call <a href="QDirIterator.html#fileInfo()"><tt>fileInfo</tt></a> to get a <a href="QFileInfo.html"><tt>QFileInfo</tt></a> for the current entry.</p> <p>Unlike Qt's container iterators, <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> is uni-directional (i.e&#x2e;, you cannot iterate directories in reverse order) and does not allow random access.</p> <p><a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> works with all supported file engines, and is implemented using <a href="QAbstractFileEngineIterator.html"><tt>QAbstractFileEngineIterator</tt></a>.</p> @see <a href="QDir.html"><tt>QDir</tt></a> @see <tt>QDir::entryList</tt> @see <a href="QAbstractFileEngineIterator.html"><tt>QAbstractFileEngineIterator</tt></a> */"> <method name="public QDirIterator(com.trolltech.qt.core.QDir dir, com.trolltech.qt.core.QDirIterator.IteratorFlags flags)" doc="/** <p>Constructs a <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> that can iterate over <tt>dir</tt>'s entrylist, using <tt>dir</tt>'s name filters and regular filters. You can pass options via <tt>flags</tt> to decide how the directory should be iterated.</p> <p>By default, <tt>flags</tt> is <a href="QDirIterator.html#IteratorFlag-enum"><tt>NoIteratorFlags</tt></a>, which provides the same behavior as in QDir::entryList().</p> <p>The sorting in <tt>dir</tt> is ignored.</p> @see <a href="QDirIterator.html#hasNext()"><tt>hasNext</tt></a> @see <a href="QDirIterator.html#next()"><tt>next</tt></a> @see <tt>IteratorFlags</tt> */"/> <method name="public QDirIterator(com.trolltech.qt.core.QDir dir)" doc="/** <p>Equivalent to <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a>(<tt>dir</tt>, NoIteratorFlags). */"/> <method name="public QDirIterator(java.lang.String path, com.trolltech.qt.core.QDirIterator.IteratorFlags flags)" doc="/** <p>Constructs a <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> that can iterate over <tt>path</tt>. You can pass options via <tt>flags</tt> to decide how the directory should be iterated.</p> <p>By default, <tt>flags</tt> is <a href="QDirIterator.html#IteratorFlag-enum"><tt>NoIteratorFlags</tt></a>, which provides the same behavior as in QDir::entryList().</p> @see <a href="QDirIterator.html#hasNext()"><tt>hasNext</tt></a> @see <a href="QDirIterator.html#next()"><tt>next</tt></a> @see <tt>IteratorFlags</tt> */"/> <method name="public QDirIterator(java.lang.String path)" doc="/** <p>Equivalent to <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a>(<tt>path</tt>, NoIteratorFlags). */"/> <method name="public QDirIterator(java.lang.String path, java.util.List<java.lang.String> nameFilters, com.trolltech.qt.core.QDir.Filters filters, com.trolltech.qt.core.QDirIterator.IteratorFlags flags)" doc="/** <p>Constructs a <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> that can iterate over <tt>path</tt>, using <tt>nameFilters</tt> and <tt>filters</tt>. You can pass options via <tt>flags</tt> to decide how the directory should be iterated.</p> <p>By default, <tt>flags</tt> is <a href="QDirIterator.html#IteratorFlag-enum"><tt>NoIteratorFlags</tt></a>, which provides the same behavior as QDir::entryList().</p> @see <a href="QDirIterator.html#hasNext()"><tt>hasNext</tt></a> @see <a href="QDirIterator.html#next()"><tt>next</tt></a> @see <tt>IteratorFlags</tt> */"/> <method name="public QDirIterator(java.lang.String path, java.util.List<java.lang.String> nameFilters, com.trolltech.qt.core.QDir.Filters filters)" doc="/** <p>Equivalent to <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a>(<tt>path</tt>, <tt>nameFilters</tt>, <tt>filters</tt>, NoIteratorFlags). */"/> <method name="public QDirIterator(java.lang.String path, java.util.List<java.lang.String> nameFilters)" doc="/** <p>Equivalent to <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a>(<tt>path</tt>, <tt>nameFilters</tt>, QDir::NoFilter, NoIteratorFlags). */"/> <method name="public QDirIterator(java.lang.String path, com.trolltech.qt.core.QDir.Filters filter, com.trolltech.qt.core.QDirIterator.IteratorFlags flags)" doc="/** <p>Constructs a <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a> that can iterate over <tt>path</tt>, with no name filtering and <tt>filter</tt> for entry filtering. You can pass options via <tt>flags</tt> to decide how the directory should be iterated.</p> <p>By default, <tt>filter</tt> is QDir::NoFilter, and <tt>flags</tt> is <a href="QDirIterator.html#IteratorFlag-enum"><tt>NoIteratorFlags</tt></a>, which provides the same behavior as in QDir::entryList().</p> @see <a href="QDirIterator.html#hasNext()"><tt>hasNext</tt></a> @see <a href="QDirIterator.html#next()"><tt>next</tt></a> @see <tt>IteratorFlags</tt> */"/> <method name="public QDirIterator(java.lang.String path, com.trolltech.qt.core.QDir.Filters filter)" doc="/** <p>Equivalent to <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a>(<tt>path</tt>, <tt>filter</tt>, NoIteratorFlags). */"/> <method name="public final com.trolltech.qt.core.QFileInfo fileInfo()" doc="/** <p>Returns a <a href="QFileInfo.html"><tt>QFileInfo</tt></a> for the current directory entry. If the current entry is invalid (i.e&#x2e;, isValid() returns false), a null <a href="QFileInfo.html"><tt>QFileInfo</tt></a> is returned.</p> @see <a href="QDirIterator.html#filePath()"><tt>filePath</tt></a> @see <a href="QDirIterator.html#fileName()"><tt>fileName</tt></a> */"/> <method name="public final java.lang.String fileName()" doc="/** <p>Returns the file name for the current directory entry, without the path prepended. If the current entry is invalid (i.e&#x2e;, isValid() returns false), a null <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a> is returned.</p> <p>This function is provided for the convenience when iterating single directories. For recursive iteration, you should call <a href="QDirIterator.html#filePath()"><tt>filePath</tt></a> or <a href="QDirIterator.html#fileInfo()"><tt>fileInfo</tt></a> instead.</p> @see <a href="QDirIterator.html#filePath()"><tt>filePath</tt></a> @see <a href="QDirIterator.html#fileInfo()"><tt>fileInfo</tt></a> */"/> <method name="public final java.lang.String filePath()" doc="/** <p>Returns the full file path for the current directory entry. If the current entry is invalid (i.e&#x2e;, isValid() returns false), a null <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a> is returned.</p> @see <a href="QDirIterator.html#fileInfo()"><tt>fileInfo</tt></a> @see <a href="QDirIterator.html#fileName()"><tt>fileName</tt></a> */"/> <method name="public final boolean hasNext()" doc="/** <p>Returns true if there is at least one more entry in the directory; otherwise, false is returned.</p> @see <a href="QDirIterator.html#next()"><tt>next</tt></a> @see <a href="QDirIterator.html#fileName()"><tt>fileName</tt></a> @see <a href="QDirIterator.html#filePath()"><tt>filePath</tt></a> @see <a href="QDirIterator.html#fileInfo()"><tt>fileInfo</tt></a> */"/> <method name="public final java.lang.String next()" doc="/** <p>Advances the iterator to the next entry, and returns the file path of this new entry. If <a href="QDirIterator.html#hasNext()"><tt>hasNext</tt></a> returns false, this function does nothing, and returns a null <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a>.</p> <p>You can call <a href="QDirIterator.html#fileName()"><tt>fileName</tt></a> or <a href="QDirIterator.html#filePath()"><tt>filePath</tt></a> to get the current entry file name or path, or <a href="QDirIterator.html#fileInfo()"><tt>fileInfo</tt></a> to get a <a href="QFileInfo.html"><tt>QFileInfo</tt></a> for the current entry.</p> @see <a href="QDirIterator.html#hasNext()"><tt>hasNext</tt></a> @see <a href="QDirIterator.html#fileName()"><tt>fileName</tt></a> @see <a href="QDirIterator.html#filePath()"><tt>filePath</tt></a> @see <a href="QDirIterator.html#fileInfo()"><tt>fileInfo</tt></a> */"/> <method name="public final java.lang.String path()" doc="/** <p>Returns the base directory of the iterator.</p> */"/> <enum name="IteratorFlag" doc="/** <p>This enum describes flags that you can combine to configure the behavior of <a href="QDirIterator.html#QDirIterator(java.lang.String, com.trolltech.qt.core.QDir.Filters, com.trolltech.qt.core.QDirIterator.IteratorFlags)"><tt>QDirIterator</tt></a>.</p> */"> <enum-value name="NoIteratorFlags" doc="/** <p>The default value, representing no flags. The iterator will return entries for the assigned path.</p> */"/> <enum-value name="FollowSymlinks" doc="/** <p>When combined with Subdirectories, this flag enables iterating through all subdirectories of the assigned path, following all symbolic links. Symbolic link loops (e.g&#x2e;, &quot;link&quot; =&gt; &quot;.&quot; or &quot;link&quot; =&gt; &quot;..&quot;) are automatically detected and ignored.</p> */"/> <enum-value name="Subdirectories" doc="/** <p>List entries inside all subdirectories as well.</p> */"/> </enum> </class>