반응형
테스트 환경
Windows10
C++
Qt 5.15.2
Qt Creator 4.13.3
파일, 폴더 목록 출력
파일과 폴더 리스트 출력
#include <QFileDialog>
#include <QDebug>
QDir dir("D:/"); // 출력할 폴더 경로 입력
foreach(QFileInfo item, dir.entryInfoList()); // 폴더 내 폴더와 파일의 리스트 삽입
qDebug()<<dir.entryInfoList(); // 리스트 출력
파일과 폴더 구분하여 출력
#include <QFileDialog>
#include <QDebug>
QDir dir("D:/");
foreach(QFileInfo item, dir.entryInfoList() )
{
if(item.isDir())
{
qDebug() << "Dir: " << item.absoluteFilePath(); // 폴더 출력
}
else if(item.isFile())
{
qDebug() << "File: " << item.absoluteFilePath(); // 파일 출력
}
}
item.absoluteFilePath()는 파일의 경로를 출력하는 함수다. 파일 이름, 사이즈 등을 출력하는 다양한 함수를 지원하며 아래 링크에서 확인할 수 있다.
부모와 자기자신의 폴더 제거하여 출력
위와 같은 방법으로 폴더를 출력하면 부모와 자기 자신의 경로까지 같이 리스트에 삽입되어 출력된다.
아래 코드는 위 "파일과 폴더 구분하여 출력" 코드에서 경로만 D:/에서 D:/boot로 수정되었다.
#include <QFileDialog>
#include <QDebug>
QDir dir("D:/boot"); // 경로 수정
foreach(QFileInfo item, dir.entryInfoList() )
{
if(item.isDir())
{
qDebug() << "Dir: " << item.absoluteFilePath();
}
else if(item.isFile())
{
qDebug() << "File: " << item.absoluteFilePath();
}
}
이는 QDir::NoDotAndDotDot | QDir::AllEntries 옵션을 추가하여 해결할 수 있다. QDir::NoDotAndDotDot 옵션만 추가하면 파일이 출력되지 않는다.
#include <QFileDialog>
#include <QDebug>
QDir dir("D:/boot");
foreach(QFileInfo item, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::AllEntries) ) // 옵션 추가
{
if(item.isDir())
{
qDebug() << "Dir: " << item.absoluteFilePath();
}
else if(item.isFile())
{
qDebug() << "File: " << item.absoluteFilePath();
}
}
최근댓글