自己用的一个小程序,
比如说看Qt的Example把,想做个目录版的记录,一个一个自己记目录文件太麻烦了。
看Linux源码,想对整体源码有个把握,肯定要了解整个目录树结构,一个一个看与记录太麻烦了吧。
于是就写这么个小东西来用
主要代码
void Widget::outputDir(QDir &dir){
if(opDeep>deep){
return;
}
else{
++opDeep;
}
QString tempPre(pre);
pre=QString(pre.append(" "));
QDir opDir=QDir(dir.absolutePath(),"*",QDir::DirsFirst,QDir::Dirs);
QDirIterator it(opDir,QDirIterator::NoIteratorFlags);
QDir tempDir;
it.next();it.next();//空掉./ ../
while(it.hasNext()){//输出文件夹,进行递归
tempDir=QDir(it.next());
contain.append(QString("/n").append(pre).append(tempDir.dirName()));
outputDir(tempDir);
}
if(file){//输出文件
opDir=QDir(dir.absolutePath(),"*.*",QDir::DirsFirst,QDir::Files);
QDirIterator it(opDir,QDirIterator::NoIteratorFlags);
QDir tempDir;
it.next();it.next();//空掉./ ../
while(it.hasNext()){
tempDir=QDir(it.next());
contain.append(QString("/n").append(pre).append(tempDir.dirName()));
}
}
pre=tempPre;
--opDeep;
}
ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget</class>
<widget class="QWidget" name="Widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>400</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>400</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>600</width>
<height>400</height>
</size>
</property>
<property name="windowTitle">
<string>输出目录内容</string>
</property>
<widget class="QWidget" name="gridWidget" native="true">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>400</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>选择目录</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item row="6" column="4">
<widget class="QTextEdit" name="textEdit"/>
</item>
<item row="6" column="1">
<widget class="QLabel" name="label">
<property name="text">
<string> 输出:</string>
</property>
</widget>
</item>
<item row="1" column="4" rowspan="2">
<widget class="QGroupBox" name="horizontalGroupBox">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QRadioButton" name="radioButton">
<property name="text">
<string>文件夹</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButton_2">
<property name="text">
<string>所有文件</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1" rowspan="2">
<widget class="QLabel" name="label_2">
<property name="text">
<string> 粒度:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_3">
<property name="text">
<string> 深度:</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QWidget" name="horizontalWidget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QSlider" name="horizontalSlider">
<property name="maximum">
<number>5</number>
</property>
<property name="value">
<number>2</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLCDNumber" name="lcdNumber">
<property name="segmentStyle">
<enum>QLCDNumber::Flat</enum>
</property>
<property name="intValue" stdset="0">
<number>2</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>