Root/src/filelister.h

1/***************************************************************************
2 * Copyright (C) 2006 by Massimiliano Torromeo *
3 * massimiliano.torromeo@gmail.com *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
20
21#ifndef FILELISTER_H
22#define FILELISTER_H
23
24#include <string>
25#include <vector>
26
27class FileLister {
28private:
29    std::string path, filter;
30    bool showDirectories, showFiles;
31
32    std::vector<std::string> directories, files, excludes;
33
34public:
35    FileLister(const std::string &startPath = "/boot/local", bool showDirectories = true, bool showFiles = true);
36    void browse(bool clean = true);
37
38    unsigned int size();
39    unsigned int dirCount();
40    unsigned int fileCount();
41    std::string operator[](unsigned int);
42    std::string at(unsigned int);
43    bool isFile(unsigned int);
44    bool isDirectory(unsigned int);
45
46    const std::string &getPath();
47    void setPath(const std::string &path, bool doBrowse=true);
48    const std::string &getFilter();
49    void setFilter(const std::string &filter);
50
51    const std::vector<std::string> &getDirectories() { return directories; }
52    const std::vector<std::string> &getFiles() { return files; }
53    void insertFile(const std::string &file);
54    void addExclude(const std::string &exclude);
55};
56
57#endif // FILELISTER_H
58

Archive Download this file



interactive