QT 磁盘文件 教程04-创建目录、删除目录、遍历目录
【1】新建目录
bool CreateDir(QString name){
QString fileName = name ;
QDir dir(fileName);
if (dir.isEmpty()) {
dir.mkdir(fileName);
return true;
}else{
qDebug()<<"文件夹已存在";
return false;
}
}
【2】删除目录
bool DeleteDir(QString fileName){
if (QFile::exists(fileName)) {
QDir qDir(fileName);
qDir.removeRecursively();
return true
}
return false;
}
【3】遍历目录
QList ListFolder(QString path){
QDir dir(path);
//仅显示目录和文件
dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot|QDir::Files | QDir::NoSymLinks);
QFileInfoList list = dir.entryInfoList();
int file_count = list.length();
QList<QString> list2 ;
for(int i=0; i<file_count; i++){
QFileInfo file_info = list.at(i);
QString suffix = file_info.suffix();
QString absolute_file_path = file_info.absoluteFilePath();
QString file_name = file_info.fileName();
QString type = "文件";
if(!file_info.isDir()){
long size = file_info.size();
double file_size = (double)size/1024.0; //文件大小显示单位:Kb
QString file_size_res;
if(file_size<1024.0){
file_size_res = QString("%1Kb").arg(QString::number(file_size,'f',2));
}else{
file_size = file_size/1024.0; //文件大小显示单位:MB
file_size_res = QString("%1Mb").arg(QString::number(file_size,'f',2));
}
type = QString("%1%2").arg(suffix).arg("文件");
QString datetime =file_info.lastModified().toLocalTime().toString("yyyy/MM/dd hh:mm:ss");
}else{
QString type=QString("%1").arg("目录");
QString datetime=file_info.lastModified().toLocalTime().toString("yyyy/MM/dd hh:mm:ss");
}
list2.append(file_name);
list2.append(type);
list2.append(file_size_res);
list2.append(datetime);
list2.append(absolute_file_path);
}
return list2;
}