一、qt遍歷文件夾下所有文件夾和文件
QString strPath = "/home/user/test";
QDir dir(strPath);
QFileInfoList list = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
foreach(QFileInfo fileInfo, list)
{
if(fileInfo.isDir())
{
qDebug()<<"dir:"<<fileInfo.fileName();
}
else
{
qDebug()<<"file:"<<fileInfo.fileName();
}
}
以上代碼將文件夾路徑設置為”/home/user/test”,通過QDir類實例化一個目錄對象,然後通過entryInfoList函數遍歷文件夾下的所有文件及文件夾信息。通過QFileInfo類中的isDir函數判斷是否是文件夾,是則輸出文件夾名,否則輸出文件名。
二、遍歷文件夾下所有文件
QString strPath = "/home/user/test";
QDir dir(strPath);
QStringList filters;
filters<<QString("*.txt");
dir.setFilter(QDir::Files | QDir::NoSymLinks);
dir.setSorting(QDir::Size | QDir::Reversed);
QFileInfoList list = dir.entryInfoList(filters,QDir::Files);
foreach(QFileInfo fileInfo, list)
{
qDebug()<<fileInfo.fileName();
}
以上代碼實現了遍歷”/home/user/test”文件夾下的所有.txt文件,通過setFilter函數設置只顯示文件,而非鏈接文件,通過setSorting函數決定按照文件大小進行排序,然後通過entryInfoList函數遍歷文件夾下的所有文件信息,通過foreach循環輸出遍歷的每個文件名。
三、c遍歷文件夾下所有文件和文件夾
#include<stdio.h>
#include<dirent.h>
#include<string.h>
int traverse_folder(const char* path)
{
DIR *dir;
struct dirent *ptr;
if ((dir=opendir(path)) == NULL)
{
perror("Open dir error...");
return 1;
}
while ((ptr=readdir(dir)) != NULL)
{
if(strcmp(ptr->d_name,".")==0 || strcmp(ptr->d_name,"..")==0)
{
continue;
}
else if(ptr->d_type == DT_DIR)
{
printf("d_name:%s/%s\n",path,ptr->d_name);
char sub_path[1024];
memset(sub_path,'\0',sizeof(sub_path));
strcpy(sub_path,path);
strcat(sub_path,"/");
strcat(sub_path,ptr->d_name);
traverse_folder(sub_path);
}
else if(ptr->d_type == DT_REG)
{
printf("f_name:%s/%s\n",path,ptr->d_name);
}
}
closedir(dir);
return 0;
}
int main(int argc,char** argv)
{
traverse_folder(argv[1]);
return 0;
}
以上代碼使用標準C實現了遍歷文件夾下所有文件和文件夾的功能,通過opendir函數打開文件夾,readdir函數讀取文件夾下的文件或文件夾信息,通過strcmp函數判斷讀取到的信息是否為當前文件夾或上一級文件夾,需要排除,如果是文件夾則通過遞歸的方式遍歷子文件夾,否則輸出文件名。
四、c遍歷文件夾下所有文件名
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<dirent.h>
void traverse_folder(char* path)
{
DIR *dirp;
struct dirent *direntp;
dirp = opendir(path);
if(dirp == NULL)
{
printf("can not open directory:%s\n",path);
exit(1);
}
while((direntp = readdir(dirp)) != NULL)
{
if(direntp->d_name[0] != '.')
{
if(direntp->d_type==DT_REG)
{
printf("%s\n",direntp->d_name);
}
}
}
closedir(dirp);
}
int main(int argc,char** argv)
{
traverse_folder(argv[1]);
return 0;
}
以上代碼使用標準C實現了遍歷文件夾下所有文件名的功能,通過opendir函數打開文件夾,readdir函數讀取文件夾下的文件或文件夾信息,通過d_name成員變數獲取文件或文件夾的名稱,判斷是否是隱藏文件,然後輸出文件名。
五、c遍歷文件夾下所有文件
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<dirent.h>
void traverse_folder(char* path)
{
DIR *dirp;
struct dirent *direntp;
dirp = opendir(path);
if(dirp == NULL)
{
printf("can not open directory:%s\n",path);
exit(1);
}
while((direntp = readdir(dirp)) != NULL)
{
if(direntp->d_name[0] != '.')
{
if(direntp->d_type==DT_REG)
{
char file_path[1024];
sprintf(file_path,"%s/%s",path,direntp->d_name);
printf("%s\n",file_path);
}
else if(direntp->d_type==DT_DIR)
{
char file_path[1024];
sprintf(file_path,"%s/%s",path,direntp->d_name);
traverse_folder(file_path);
}
}
}
closedir(dirp);
}
int main(int argc,char** argv)
{
traverse_folder(argv[1]);
return 0;
}
以上代碼使用標準C實現了遍歷文件夾下所有文件的功能,通過opendir函數打開文件夾,readdir函數讀取文件夾下的文件或文件夾信息,通過d_name成員變數獲取文件或文件夾的名稱,判斷是否是隱藏文件,如果是文件則輸出完整路徑名,否則進行遞歸遍歷子文件夾。
六、qt遍歷文件夾進度條
QString strPath = "/home/user/test";
QDir dir(strPath);
QStringList filters;
filters<<QString("*.txt");
dir.setFilter(QDir::Files | QDir::NoSymLinks);
dir.setSorting(QDir::Size | QDir::Reversed);
QFileInfoList list = dir.entryInfoList(filters,QDir::Files);
QProgressDialog progress("Searching...", "Cancel", 0, list.size(), this);
progress.setWindowModality(Qt::WindowModal);
for(int i = 0; i < list.size(); ++i)
{
if(progress.wasCanceled())
break;
QString fileName = list.at(i).fileName();
qDebug()<<fileName;
progress.setValue(i);
}
progress.setValue(list.size());
以上代碼實現了遍歷”/home/user/test”文件夾下的所有.txt文件,並通過QProgressDialog類實現帶有進度條的遍歷顯示,通過setValue函數設置進度條的當前值。
七、遍歷文件夾下的所有文件夾名稱
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<dirent.h>
void traverse_folder(char* path)
{
DIR *dirp;
struct dirent *direntp;
dirp = opendir(path);
if(dirp == NULL)
{
printf("can not open directory:%s\n",path);
exit(1);
}
while((direntp = readdir(dirp)) != NULL)
{
if(direntp->d_name[0] != '.')
{
if(direntp->d_type==DT_DIR)
{
printf("%s\n",direntp->d_name);
char file_path[1024];
sprintf(file_path,"%s/%s",path,direntp->d_name);
traverse_folder(file_path);
}
}
}
closedir(dirp);
}
int main(int argc,char** argv)
{
traverse_folder(argv[1]);
return 0;
}
以上代碼使用標準C實現了遍歷文件夾下所有文件夾名稱的功能,通過opendir函數打開文件夾,readdir函數讀取文件夾下的文件或文件夾信息,通過d_name成員變數獲取文件或文件夾的名稱,判斷是否是隱藏文件夾,如果是文件夾則輸出文件夾名,然後進行遞歸遍歷子文件夾。
八、qt遍歷文件夾
QString strPath = "/home/user/test";
void traverse_folder(const QString &path)
{
QDir dir(path);
QFileInfoList list = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
foreach(QFileInfo fileInfo, list)
{
if(fileInfo.isDir())
{
qDebug()<<"dir:"<<fileInfo.absoluteFilePath();
traverse_folder(fileInfo.absoluteFilePath());
}
else
{
qDebug()<<"file:"<<fileInfo.fileName();
}
}
}
traverse_folder(strPath);
以上代碼使用Qt實現了遍歷”/home/user/test”文件夾下的所有文件及子文件夾的功能,通過QDir類實例化一個目錄對象,然後通過entryInfoList函數遍歷文件夾下的所有文件及文件夾信息,通過QFileInfo類中的isDir函數判斷是否是文件夾,是則輸出文件夾名,否則輸出文件名。
九、qt遍歷文件夾中的文件名
QString strPath = "/home/user/test";
void traverse_folder(const QString &path)
{
QDir dir(path);
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
QFileInfoList list = dir.entryInfoList();
foreach(QFileInfo fileInfo, list)
{
qDebug()<<fileInfo.fileName();
}
}
traverse_folder(strPath);
以上代碼使用Qt實現了遍歷”/home/user/test”文件夾下的所有文件名的功能,通過QDir類實例化一個目錄對象,然後通過entryInfoList函數遍歷文件夾下的所有文件信息,通過QFileInfo類中的fileName函數獲取文件名,並輸出。
十、qt遍歷文件夾及子文件夾
QString strPath = "/home/user/test";
void traverse_folder(const QString &path)
{
QDir dir(path);
QFileInfoList list = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
foreach(QFileInfo fileInfo, list)
{
if(fileInfo.isDir())
{
qDebug()<<"dir:"<<fileInfo.absoluteFilePath();
traverse_folder(fileInfo.absoluteFilePath());
}
else
{
qDebug()<<"file:"<<fileInfo.fileName();
}
}
}
traverse_folder(strPath);
以上代碼使用Qt實現了遍歷”/home/user/test”文件夾下的所有文件及子文件夾的功能,通過QDir類實例化一個目錄對象,然後通過entryInfoList函數遍歷文件夾下的所有文件及文件夾信息,通過QFileInfo類中的isDir函數判斷是否是文件夾,是則輸出文件夾名,否則輸出文件名。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279200.html