00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "Traverse.h"
00023 #include <qdir.h>
00024 #include <qfileinfo.h>
00025
00026 Traverse::Traverse (Traverse::Type t)
00027 {
00028 type = t;
00029 }
00030
00031 Traverse::~Traverse ()
00032 {
00033 }
00034
00035 void Traverse::traverse (QString dirname)
00036 {
00037 QDir dir(dirname);
00038 dir.setFilter(QDir::Dirs|QDir::Files);
00039
00040 const QFileInfoList *fileinfolist = dir.entryInfoList();
00041 QFileInfoListIterator it(*fileinfolist);
00042 QFileInfo *fi;
00043 while((fi = it.current()))
00044 {
00045 if(fi->fileName() == "." || fi->fileName() == "..")
00046 {
00047 ++it;
00048 continue;
00049 }
00050
00051 if(fi->isDir() && fi->isReadable())
00052 {
00053 if (type == Dir)
00054 list.append(fi->absFilePath());
00055 traverse(fi->absFilePath());
00056 }
00057 else
00058 {
00059 if (type == File)
00060 list.append(fi->absFilePath());
00061 }
00062
00063 ++it;
00064 }
00065 }
00066
00067 void Traverse::getList (QStringList &l)
00068 {
00069 l = list;
00070 }
00071
00072 void Traverse::clear ()
00073 {
00074 list.clear();
00075 }
00076
00077