File indexing completed on 2024-05-12 16:06:33

0001 /*
0002     SPDX-FileCopyrightText: 2007 Tobias Koenig <tokoe@kde.org>
0003     SPDX-FileCopyrightText: 2011 David Palacio <dpalacio@orbitalibre.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef DIRECTORY_H
0009 #define DIRECTORY_H
0010 
0011 #include <QStringList>
0012 
0013 class QIODevice;
0014 
0015 class Directory
0016 {
0017 public:
0018     /**
0019      * Creates a new directory object.
0020      */
0021     Directory();
0022 
0023     /**
0024      * Destroys the directory object.
0025      */
0026     ~Directory();
0027 
0028     /**
0029      * Opens given directory.
0030      */
0031     bool open(const QString &dirName);
0032 
0033     /**
0034      * Returns the list of files from the directory.
0035      */
0036     QStringList list() const;
0037 
0038     /**
0039      * Returns a new device for reading the file with the given path.
0040      */
0041     QIODevice *createDevice(const QString &path) const;
0042 
0043 private:
0044     /**
0045      * Iterates over a directory and returns a file list.
0046      */
0047     QStringList recurseDir(const QString &dir, int curDepth) const;
0048 
0049     static const int staticMaxDepth = 1;
0050     QString mDir;
0051 };
0052 
0053 #endif