QDir Class
QDir 클래스는 디렉터리 구조와 그 내용물에 대한 접근 기능을 제공합니다. 더 보기...
| 헤더: | #include <QDir> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- QDir은 입출력 및 네트워킹, 그리고 암시적 공유 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
QDir 비교
| 범주 | 비교 가능한 유형 |
|---|---|
| 동등성 | QDir |
공개 유형
| enum | Filter { Dirs, AllDirs, Files, Drives, NoSymLinks, …, CaseSensitive } |
| flags | Filters |
| enum | SortFlag { Name, Time, Size, Type, Unsorted, …, LocaleAware } |
| flags | SortFlags |
공개 함수
| QDir(const QString &path = QString()) | |
(since 6.0) | QDir(const std::filesystem::path &path) |
| QDir(const QString &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries) | |
(since 6.0) | QDir(const std::filesystem::path &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries) |
| QDir(const QDir &dir) | |
| ~QDir() | |
| QString | absoluteFilePath(const QString &fileName) const |
| QString | absolutePath() const |
| QString | canonicalPath() const |
| bool | cd(const QString &dirName) |
| bool | cdUp() |
| qsizetype | count() const |
| QString | dirName() const |
| QFileInfoList | entryInfoList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const |
| QFileInfoList | entryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const |
| QStringList | entryList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const |
| QStringList | entryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const |
| bool | exists(const QString &name) const |
| bool | exists() const |
| QString | filePath(const QString &fileName) const |
(since 6.0) std::filesystem::path | filesystemAbsolutePath() const |
(since 6.0) std::filesystem::path | filesystemCanonicalPath() const |
(since 6.0) std::filesystem::path | filesystemPath() const |
| QDir::Filters | filter() const |
| bool | isAbsolute() const |
| bool | isEmpty(QDir::Filters filters = Filters(AllEntries | NoDotAndDotDot)) const |
| bool | isReadable() const |
| bool | isRelative() const |
| bool | isRoot() const |
| bool | makeAbsolute() |
| bool | mkdir(const QString &dirName, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const |
| bool | mkpath(const QString &dirPath, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const |
| QStringList | nameFilters() const |
| QString | path() const |
| void | refresh() const |
| QString | relativeFilePath(const QString &fileName) const |
| bool | remove(const QString &fileName) |
| bool | removeRecursively() |
| bool | rename(const QString &oldName, const QString &newName) |
| bool | rmdir(const QString &dirName) const |
| bool | rmpath(const QString &dirPath) const |
| void | setFilter(QDir::Filters filters) |
| void | setNameFilters(const QStringList &nameFilters) |
| void | setPath(const QString &path) |
(since 6.0) void | setPath(const std::filesystem::path &path) |
| void | setSorting(QDir::SortFlags sort) |
| QDir::SortFlags | sorting() const |
| void | swap(QDir &other) |
| QDir & | operator=(QDir &&other) |
| QDir & | operator=(const QDir &dir) |
| QString | operator[](qsizetype pos) const |
정적 공용 멤버
| void | addSearchPath(const QString &prefix, const QString &path) |
(since 6.0) void | addSearchPath(const QString &prefix, const std::filesystem::path &path) |
| QString | cleanPath(const QString &path) |
| QDir | current() |
| QString | currentPath() |
| QFileInfoList | drives() |
| QString | fromNativeSeparators(const QString &pathName) |
| QDir | home() |
| QString | homePath() |
| bool | isAbsolutePath(const QString &path) |
| bool | isRelativePath(const QString &path) |
| QChar | listSeparator() |
| bool | match(const QString &filter, const QString &fileName) |
| bool | match(const QStringList &filters, const QString &fileName) |
| QDir | root() |
| QString | rootPath() |
| QStringList | searchPaths(const QString &prefix) |
| QChar | separator() |
| bool | setCurrent(const QString &path) |
| void | setSearchPaths(const QString &prefix, const QStringList &searchPaths) |
| QDir | temp() |
| QString | tempPath() |
| QString | toNativeSeparators(const QString &pathName) |
관련 비멤버
| bool | operator!=(const QDir &lhs, const QDir &rhs) |
| bool | operator==(const QDir &lhs, const QDir &rhs) |
상세 설명
QDir는 경로 이름을 조작하고, 경로 및 파일에 관한 정보에 접근하며, 기본 파일 시스템을 조작하는 데 사용됩니다. 또한 Qt의 리소스 시스템에 접근하는 데에도 사용할 수 있습니다.
Qt는 URL에서 “/”가 경로 구분자로 사용되는 것과 마찬가지로 “/”를 범용 디렉터리 구분자로 사용합니다. 디렉터리 구분자로 항상 “/”를 사용하면, Qt는 해당 경로를 기본 운영 체제의 형식에 맞게 변환합니다.
QDir는 상대 경로나 절대 경로를 사용하여 파일을 지정할 수 있습니다. 절대 경로는 디렉터리 구분자로 시작하며(Windows에서는 선택적으로 그 앞에 드라이브 명을 붙일 수 있음), 상대 파일명은 디렉터리 이름이나 파일 이름으로 시작하여 현재 디렉터리를 기준으로 한 상대 경로를 지정합니다.
절대 경로의 예:
Windows에서 위의 두 번째 예제는 파일에 액세스할 때 C:\Users 로 변환됩니다.
상대 경로의 예:
QDir("images/landscape.png");isRelative() 또는 isAbsolute() 함수를 사용하여 QDir이 상대 경로인지 절대 경로인지 확인할 수 있습니다. 상대 경로인 QDir을 절대 경로로 변환하려면 makeAbsolute()를 호출하십시오.
참고: 콜론(:)으로 시작하는경로는 항상 절대 경로로 간주되며, 이는 QResource 을 나타내기 때문입니다.
탐색 및 디렉터리 조작
디렉터리의 경로는 ` path()` 함수를 사용하여 얻을 수 있으며, ` setPath()` 함수를 사용하여 새로운 경로를 설정할 수 있습니다. 디렉터리의 절대 경로는 ` absolutePath()` 함수를 호출하여 확인할 수 있습니다.
디렉터리의 이름은 dirName() 함수를 사용하여 확인할 수 있습니다. 이 함수는 일반적으로 디렉터리의 위치를 지정하는 절대 경로의 마지막 요소를 반환합니다. 그러나 QDir가 현재 디렉터리를 나타내는 경우 "."를 반환할 수도 있습니다.
디렉터리의 경로는 cd() 및 cdUp() 함수를 사용하여 변경할 수도 있으며, 이 두 함수는 모두 익숙한 셸 명령어와 유사하게 작동합니다. cd()를 기존 디렉터리의 이름과 함께 호출하면, QDir 객체는 해당 디렉터리를 가리키도록 디렉터리를 변경합니다. cdUp() 함수는 QDir 객체의 디렉터리를 상위 디렉터리를 가리키도록 변경합니다. 즉, cd("..")는 cdUp()과 동일합니다.
mkdir()를 사용하여 디렉터리를 생성하고, rename()를 사용하여 이름을 변경하며, rmdir()를 사용하여 삭제할 수 있습니다.
exists()를 사용하여 지정된 이름의 디렉터리가 존재하는지 확인할 수 있으며, isReadable(), isAbsolute(), isRelative(), isRoot()를 사용하여 디렉터리의 속성을 확인할 수 있습니다.
refresh() 함수는 디스크에서 디렉터리의 데이터를 다시 읽습니다.
파일 및 디렉터리 내용
디렉토리에는 파일, 디렉토리 및 심볼릭 링크를 나타내는 여러 개의 항목이 포함되어 있습니다. 디렉토리 내 항목의 개수는 count() 함수를 통해 반환됩니다. 디렉토리 내 모든 항목의 이름을 담은 문자열 목록은 entryList() 함수를 사용하여 얻을 수 있습니다. 각 항목에 대한 정보가 필요한 경우, entryInfoList() 함수를 사용하여 QFileInfo 객체 목록을 가져오십시오.
디렉터리 내의 파일 및 디렉터리로 가는 경로는 filePath() 및 absoluteFilePath()을 사용하여 생성할 수 있습니다. filePath() 함수는 QDir 객체의 경로를 기준으로 지정된 파일이나 디렉터리로 가는 상대 경로를 반환하며, absoluteFilePath()은 지정된 파일이나 디렉터리로 가는 절대 경로를 반환합니다. 이 두 함수 모두 파일이나 디렉터리의 존재 여부를 확인하지 않으며, 단지 경로를 생성할 뿐입니다.
QDir directory("Documents/Letters");
QString path = directory.filePath("contents.txt");
QString absolutePath = directory.absoluteFilePath("contents.txt");remove() 함수를 사용하여 파일을 삭제할 수 있습니다. 디렉터리는 파일과 같은 방식으로 삭제할 수 없으며, 대신 rmdir()을 사용하여 삭제해야 합니다.
QDir 객체에 필터를 적용하여 entryList() 및 entryInfoList()가 반환하는 항목의 수를 줄일 수 있습니다. 와일드카드를 사용하여 파일 이름이 일치해야 하는 패턴을 지정하는 이름 필터, 항목의 속성을 선택하고 파일과 디렉터리를 구분할 수 있는 속성 필터, 그리고 정렬 순서를 적용할 수 있습니다.
이름 필터는 setNameFilters()에 전달되는 문자열 목록입니다. 속성 필터는 Filters의 비트별 OR 조합으로 구성되며, 이는 setFilter()를 호출할 때 지정됩니다. 정렬 순서는 setSorting()를 사용하여 SortFlags 의 비트별 OR 조합으로 지정됩니다.
match() 함수를 사용하여 파일 이름이 필터와 일치하는지 확인할 수 있습니다.
entryList() 및 entryInfoList()을 호출할 때 필터 및 정렬 순서 플래그를 지정하여 이전에 정의된 동작을 재정의할 수도 있습니다.
현재 디렉터리 및 기타 특수 경로
일부 일반적인 디렉터리에 대한 액세스는 QDir 객체를 반환하는 여러 정적 함수를 통해 제공됩니다. 또한 이에 상응하여 문자열을 반환하는 함수들도 있습니다:
| QDir | QString | 반환 값 |
|---|---|---|
| current() | currentPath() | 응용 프로그램의 작업 디렉터리 |
| home() | homePath() | 사용자의 홈 디렉터리 |
| root() | rootPath() | 루트 디렉터리 |
| temp() | tempPath() | 시스템의 임시 디렉터리 |
setCurrent() 정적 함수를 사용하여 애플리케이션의 작업 디렉터리를 설정할 수도 있습니다.
애플리케이션의 실행 파일이 포함된 디렉터리를 찾으려면 QCoreApplication::applicationDirPath()을 참조하십시오.
drives() 정적 함수는 파일 시스템을 포함하는 각 장치에 대한 루트 디렉터리 목록을 제공합니다. 유닉스 시스템에서는 이 함수가 단일 루트 디렉터리 "/"를 포함하는 목록을 반환하며, 윈도우에서는 일반적으로 C:/ 을 포함하고, 사용자의 시스템 구성에 따라 D:/ 과 같은 다른 드라이브 문자가 포함될 수도 있습니다.
경로 조작 및 문자열
경로 내의 "." 요소(해당 지점에서 현재 디렉터리를 가리킴), ".." 요소(상위 디렉터리를 가리킴) 및 심볼릭 링크가 포함된 경로는 ` canonicalPath()` 함수를 사용하여 정규화된 형태로 변환할 수 있습니다.
또한 cleanPath()를 사용하여 중복된 "/" 및 ".." 요소를 제거함으로써 경로를 단순화할 수 있습니다.
때로는 사용자의 플랫폼에 맞는 기본 표현 방식으로 경로를 표시해야 할 필요가 있습니다. 정적 함수 toNativeSeparators()는 지정된 경로의 복사본을 반환하며, 이 복사본에서는 각 디렉터리 구분자가 해당 운영 체제에 적합한 구분자로 대체됩니다.
예제
디렉터리가 존재하는지 확인하기:
( QFileInfo::exists()이나 QFile::exists() 같은 정적 편의 함수 중 하나를 사용할 수도 있습니다.)
디렉터리를 탐색하고 파일을 읽는 방법:
QDir dir = QDir::root(); // "/"
if (!dir.cd("tmp")) { // "/tmp"
qWarning("Cannot find the \"/tmp\" directory");
} else {
QFile file(dir.filePath("ex1.txt")); // "/tmp/ex1.txt"
if (!file.open(QIODevice::ReadWrite))
qWarning("Cannot create the file %s", qPrintable(file.fileName()));
}현재 디렉터리에 있는 모든 파일(심볼릭 링크 제외)을 크기 순서대로, 가장 작은 파일부터 나열하는 프로그램:
#include <QDir>
#include <iostream>
#include <QCoreApplication>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QDir dir;
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
dir.setSorting(QDir::Size | QDir::Reversed);
QFileInfoList list = dir.entryInfoList();
std::cout << " Bytes Filename" << std::endl;
for (int i = 0; i < list.size(); ++i) {
QFileInfo fileInfo = list.at(i);
std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
.arg(fileInfo.fileName()));
std::cout << std::endl;
}
return 0;
}플랫폼별 문제점
Android에서는 콘텐츠 URI를 다룰 때 몇 가지 제한 사항이 적용됩니다:
- Android의 기본 파일 선택기를 구현하는 QFileDialog 를 통해 사용자에게 권한 요청을 표시해야 할 수 있습니다.
- 다른 공용 외부 디렉터리 대신 앱 전용 디렉터리를 사용하는 등, Scoped storage 지침을 따르도록 하십시오. 자세한 내용은 스토리지 모범 사례도 참조하십시오.
- Qt API(예: QFile)의 설계상, 해당 API를 Android의 MediaStore API와 완전히 통합하는 것은 불가능합니다.
QFileInfo, QFile, QFileDialog, QCoreApplication::applicationDirPath() 및 Fetch More 예제도참조하십시오 .
멤버 유형 문서
enum QDir::Filter
flags QDir::Filters
이 열거형은 ` QDir`에서 사용할 수 있는 필터링 옵션을 설명합니다. 예를 들어, ` entryList()` 및 ` entryInfoList()`에서 사용됩니다. 필터 값은 다음 목록의 값들을 비트별 OR 연산자를 사용하여 조합하여 지정합니다:
| 상수 | 값 | 설명 |
|---|---|---|
QDir::Dirs | 0x001 | 필터 조건에 맞는 디렉터리를 나열합니다. |
QDir::AllDirs | 0x400 | 모든 디렉터리를 나열합니다. 즉, 디렉터리 이름에 필터를 적용하지 않습니다. |
QDir::Files | 0x002 | 파일을 나열합니다. |
QDir::Drives | 0x004 | 디스크 드라이브를 나열합니다(Unix에서는 무시됨). |
QDir::NoSymLinks | 0x008 | 심볼릭 링크를 나열하지 않습니다(심볼릭 링크를 지원하지 않는 운영 체제에서는 무시됨). |
QDir::NoDotAndDotDot | NoDot | NoDotDot | 특수 항목인 "." 및 ".."을 나열하지 않습니다. |
QDir::NoDot | 0x2000 | 특수 항목 “.”은 나열하지 마십시오. |
QDir::NoDotDot | 0x4000 | 특수 항목 ".."을 나열하지 않습니다. |
QDir::AllEntries | Dirs | Files | Drives | 디렉터리, 파일, 드라이브 및 심볼릭 링크를 나열합니다(System을 지정하지 않는 한, 끊어진 심볼릭 링크는 나열되지 않습니다). |
QDir::Readable | 0x010 | 애플리케이션이 읽기 권한을 가진 파일을 나열합니다. Readable 값은 Dirs 또는 Files와 함께 사용해야 합니다. |
QDir::Writable | 0x020 | 애플리케이션이 쓰기 권한을 가진 파일을 나열합니다. 'Writable' 값은 'Dirs' 또는 'Files'와 함께 사용해야 합니다. |
QDir::Executable | 0x040 | 응용 프로그램이 실행 권한을 가진 파일을 나열합니다. 'Executable' 값은 'Dirs' 또는 'Files'와 함께 사용해야 합니다. |
QDir::Hidden | 0x100 | 숨겨진 파일을 나열합니다(유닉스에서는 "."로 시작하는 파일). |
QDir::System | 0x200 | 시스템 파일을 나열합니다(유닉스에서는 FIFO, 소켓 및 장치 파일이 포함되며, 윈도우에서는 .lnk 파일이 포함됩니다). |
QDir::CaseSensitive | 0x800 | 필터는 대소문자를 구분해야 합니다. |
파일 및 디렉터리 목록을 필터링하기 위해 Filter 열거형 값을 사용하는 함수는 NoSymLinks 값을 설정하지 않는 한 파일 및 디렉터리에 대한 심볼릭 링크를 포함합니다.
기본적으로 생성된 QDir 는 파일의 권한을 기준으로 파일을 필터링하지 않으므로, entryList() 및 entryInfoList()는 읽기, 쓰기, 실행 권한이 있거나 이 세 가지 권한이 조합된 모든 파일을 반환합니다. 이로 인해 기본값을 작성하기 쉬우면서도 유용합니다.
예를 들어, Readable, Writable 및 Files 플래그를 설정하면 애플리케이션이 읽기 권한, 쓰기 권한 또는 두 가지 권한 모두를 가진 모든 파일을 나열할 수 있습니다. 이 조합에 Dirs 및 Drives 플래그도 포함되면 모든 드라이브, 디렉터리, 애플리케이션이 읽기, 쓰기 또는 실행할 수 있는 모든 파일, 그리고 해당 파일/디렉터리로 연결된 심볼릭 링크를 나열할 수 있습니다.
디렉터리의 권한을 조회하려면 entryInfoList() 함수를 사용하여 관련 QFileInfo 객체를 가져온 다음, QFileInfo::permissions()를 사용하여 각 파일의 권한 및 소유권을 확인하십시오.
Filters 유형은 QFlags<Filter>에 대한 typedef입니다. 이 유형은 Filter 값들의 OR 조합을 저장합니다.
enum QDir::SortFlag
flags QDir::SortFlags
이 열거형은 ` QDir`에서 사용할 수 있는 정렬 옵션을 설명합니다. 예를 들어, ` entryList()` 및 ` entryInfoList()`에서 사용됩니다. 정렬 값은 다음 목록에 있는 값들을 논리 OR 연산으로 결합하여 지정됩니다:
| 상수 | 값 | 설명 |
|---|---|---|
QDir::Name | 0x00 | 이름순으로 정렬합니다. |
QDir::Time | 0x01 | 시간(수정 시간) 순으로 정렬합니다. |
QDir::Size | 0x02 | 파일 크기순으로 정렬. |
QDir::Type | 0x80 | 파일 유형(확장자)순으로 정렬. |
QDir::Unsorted | 0x03 | 정렬하지 않음. |
QDir::NoSort | -1 | 기본적으로 정렬되지 않습니다. |
QDir::DirsFirst | 0x04 | 디렉터리를 먼저 표시하고, 그 다음에 파일을 표시합니다. |
QDir::DirsLast | 0x20 | 파일을 먼저 배치하고, 그 다음에 디렉터리를 배치합니다. |
QDir::Reversed | 0x08 | 정렬 순서를 반대로 합니다. |
QDir::IgnoreCase | 0x10 | 대소문자를 구분하지 않고 정렬합니다. |
QDir::LocaleAware | 0x40 | 현재 로케일 설정에 따라 항목을 적절하게 정렬합니다. |
처음 네 가지 중 하나만 지정할 수 있습니다.
DirsFirst와 Reversed를 모두 지정하더라도 디렉터리는 여전히 먼저 나열되지만 순서는 역순으로 바뀌며, 파일은 디렉터리 다음에 역시 역순으로 나열됩니다.
SortFlags 유형은 QFlags<SortFlag>에 대한 typedef입니다. 이 유형은 SortFlag 값들의 OR 조합을 저장합니다.
멤버 함수 문서
QDir::QDir(const QString &path = QString())
지정된 디렉터리 path 를 가리키는 QDir 객체를 생성합니다. path가 비어 있으면 프로그램의 작업 디렉터리(".")가 사용됩니다.
currentPath()도 참조하십시오 .
[since 6.0] QDir::QDir(const std::filesystem::path &path)
지정된 디렉터리 path 를 가리키는 QDir 객체를 생성합니다. path가 비어 있으면 프로그램의 작업 디렉터리(".")가 사용됩니다.
이 함수는 Qt 6.0에서 도입되었습니다.
currentPath()도 참조하십시오 .
QDir::QDir(const QString &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)
path 경로를 가진 QDir를 생성하며, nameFilter 를 사용하여 이름으로, filters 를 사용하여 속성으로 항목을 필터링합니다. 또한 sort 를 사용하여 이름을 정렬합니다.
기본값인 nameFilter 는 빈 문자열로, 아무것도 제외하지 않습니다. 기본값인 filters 는 AllEntries 이며, 이 역시 아무것도 제외하지 않습니다. 기본값인 sort 는 Name | IgnoreCase 로, 대소문자를 구분하지 않고 이름 순으로 정렬합니다.
path 가 빈 문자열인 경우, QDir은 "."(현재 디렉터리)를 사용합니다. nameFilter 가 빈 문자열인 경우, QDir은 이름 필터 "*"(모든 파일)를 사용합니다.
참고: path 는 반드시 존재할 필요는 없습니다.
exists(), setPath(), setNameFilters(), setFilter() 및 setSorting()도 참조하십시오 .
[since 6.0] QDir::QDir(const std::filesystem::path &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)
path 경로를 가진 QDir 객체를 생성하며, nameFilter 를 사용하여 이름을 기준으로, filters 를 사용하여 속성을 기준으로 항목을 필터링합니다. 또한 sort 를 사용하여 이름을 정렬합니다.
기본값인 nameFilter 는 빈 문자열로, 아무것도 제외하지 않습니다. 기본값인 filters 는 AllEntries 이며, 이 역시 아무것도 제외하지 않습니다. 기본값인 sort 는 Name | IgnoreCase, 즉 대소문자를 구분하지 않고 이름 순으로 정렬합니다.
path 가 비어 있으면, QDir은 "."(현재 디렉터리)를 사용합니다. nameFilter 가 빈 문자열이면, QDir은 이름 필터 "*"(모든 파일)를 사용합니다.
참고: path 는 반드시 존재할 필요는 없습니다.
이 함수는 Qt 6.0에서 도입되었습니다.
exists(), setPath(), setNameFilters(), setFilter() 및 setSorting()도 참조하십시오 .
QDir::QDir(const QDir &dir)
dir 디렉터리에 대한 QDir 객체의 복사본인 QDir 객체를 생성합니다.
operator=()도 참조하십시오 .
[noexcept] QDir::~QDir()
QDir 객체를 삭제하고 해당 리소스를 해제합니다. 이는 파일 시스템 내의 기본 디렉터리에는 아무런 영향을 미치지 않습니다.
QString QDir::absoluteFilePath(const QString &fileName) const
디렉터리 내 파일의 절대 경로명을 반환합니다. 파일이 해당 디렉터리에 실제로 존재하는지 여부는 확인하지 않습니다. 단, exists()을 참조하십시오. fileName 에 포함된 중복된 구분 기호나 "." 및 ".." 디렉터리는 제거되지 않습니다( cleanPath() 참조).
relativeFilePath(), filePath(), canonicalPath()도 참조하십시오 .
QString QDir::absolutePath() const
상대 경로(“/” 또는 드라이브 지정자로 시작하는 경로)를 반환합니다. 이 경로에는 심볼릭 링크가 포함될 수 있지만, 중복된 “.”, “..” 또는 여러 개의 구분 기호는 절대 포함되지 않습니다.
setPath(), canonicalPath(), exists(), cleanPath(), dirName() 및 absoluteFilePath()도 참조하십시오 .
[static] void QDir::addSearchPath(const QString &prefix, const QString &path)
prefix 의 검색 경로에 path 을 추가합니다.
setSearchPaths()도 참조하십시오 .
[static, since 6.0] void QDir::addSearchPath(const QString &prefix, const std::filesystem::path &path)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
QString QDir::canonicalPath() const
심볼릭 링크나 중복된 "." 또는 ".." 요소가 제거된 정규 경로를 반환합니다.
심볼릭 링크가 없는 시스템에서는 이 함수가 항상 absolutePath()이 반환하는 것과 동일한 문자열을 반환합니다. 이 메서드는 항목이 존재하지 않거나, 접근할 수 없거나(예: 현재 사용자가 디렉터리 경로에 대한 접근 권한이 없는 경우), 경로를 정규화하는 과정에서 오류가 발생한 경우(일반적으로 끊어진 심볼릭 링크로 인해) 빈 문자열을 반환합니다.
예시:
QString bin = "/local/bin"; // where /local/bin is a symlink to /usr/bin
QDir binDir(bin);
QString canonicalBin = binDir.canonicalPath();
// canonicalBin now equals "/usr/bin"
QString ls = "/local/bin/ls"; // where ls is the executable "ls"
QDir lsDir(ls);
QString canonicalLs = lsDir.canonicalPath();
// canonicalLS now equals "/usr/bin/ls".path(), absolutePath(), exists(), cleanPath(), dirName(), absoluteFilePath()도 참조하십시오 .
bool QDir::cd(const QString &dirName)
QDir 의 디렉터리를 dirName 으로 변경합니다.
새로운 디렉터리가 존재하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. 새로운 디렉터리가 존재하지 않을 경우 논리적 cd() 연산은 수행되지 않는다는 점에 유의하십시오.
cd("..")를 호출하는 것은 cdUp()를 호출하는 것과 동일합니다.
cdUp(), isReadable(), exists(), path()도 참조하십시오 .
bool QDir::cdUp()
QDir 의 현재 디렉터리에서 한 단계 위로 이동하여 디렉터리를 변경합니다.
새로운 디렉터리가 존재하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. 새로운 디렉터리가 존재하지 않는 경우 논리적 cdUp() 작업은 수행되지 않는다는 점에 유의하십시오.
참고: Android에서는 콘텐츠 URI에 대해 이 기능이 지원되지 않습니다. 자세한 내용은 DocumentFile.getParentFile()을 참조하십시오.
cd(), isReadable(), exists(), path()도 참조하십시오 .
[static] QString QDir::cleanPath(const QString &path)
디렉터리 구분 기호를 정규화(즉, 플랫폼 고유의 구분 기호를 “/”로 변환)하고, 중복된 구분 기호를 제거하며, “.”와 “..”를 (가능한 한) 해결한 후 path 를 반환합니다.
심볼릭 링크는 유지됩니다. 이 함수는 정규화된 경로를 반환하는 것이 아니라, 입력의 가장 단순한 버전을 반환합니다. 예를 들어, "./local"은 "local"이 되고, "local/../bin"은 "bin"이 되며, "/local/usr/../bin"은 "/local/bin"이 됩니다.
absolutePath() 및 canonicalPath()도 참조하십시오 .
qsizetype QDir::count() const
해당 디렉터리에 있는 디렉터리 및 파일의 총 개수를 반환합니다.
entryList()의 count()와 동일합니다.
참고: Qt 6.5 이전버전에서는 이 함수가 qsizetype 가 아닌 uint 를 반환했습니다.
operator[]() 및 entryList()도 참조하십시오 .
[static] QDir QDir::current()
애플리케이션의 현재 디렉터리를 반환합니다.
이 디렉터리는 현재 디렉터리의 절대 경로를 사용하여 구성되며, path()의 결과가 absolutePath()의 결과와 동일하도록 보장합니다.
currentPath(), setCurrent(), home(), root() 및 temp()도 참조하십시오 .
[static] QString QDir::currentPath()
애플리케이션의 현재 디렉터리의 절대 경로를 반환합니다. 현재 디렉터리는 QDir::setCurrent() 함수로 마지막으로 설정된 디렉터리이거나, 해당 함수가 호출된 적이 없는 경우 부모 프로세스에 의해 이 애플리케이션이 시작된 디렉터리입니다.
current(), setCurrent(), homePath(), rootPath(), tempPath() 및 QCoreApplication::applicationDirPath()도 참조하십시오 .
QString QDir::dirName() const
디렉터리의 이름을 반환합니다. 이는 경로와 동일하지 않습니다. 예를 들어, 이름이 “mail”인 디렉터리의 경로는 “/var/spool/mail”일 수 있습니다. 디렉터리에 이름이 없는 경우(예: 루트 디렉터리인 경우) 빈 문자열이 반환됩니다.
이 이름의 디렉터리가 실제로 존재하는지 여부는 확인되지 않습니다. 단, exists()를 참조하십시오.
path(), filePath(), absolutePath(), absoluteFilePath()도 참조하십시오 .
[static] QFileInfoList QDir::drives()
이 시스템의 루트 디렉터리 목록을 반환합니다.
Windows에서는 "C:/", "D:/" 등을 포함하는 QFileInfo 객체 목록을 반환합니다. 이 함수는 비어 있는 탈착식 미디어가 있는 드라이브는 반환하지 않습니다. 다른 운영 체제에서는 단 하나의 루트 디렉터리(즉, "/")만 포함된 목록을 반환합니다.
QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
해당 디렉터리에 있는 모든 파일과 디렉터리에 대한 ` QFileInfo ` 객체 목록을 반환하며, 이 목록은 이전에 ` setNameFilters()` 및 ` setFilter()`를 통해 설정된 이름 및 속성 필터에 따라 정렬되고, ` setSorting()`를 통해 설정된 플래그에 따라 순서가 정해집니다.
이름 필터, 파일 속성 필터 및 정렬 규정은 nameFilters, filters 및 sort 인수를 사용하여 재정의할 수 있습니다.
디렉터리를 읽을 수 없거나, 디렉터리가 존재하지 않거나, 사양에 맞는 항목이 없는 경우 빈 리스트를 반환합니다.
대용량 디렉터리의 경우, 이 함수는 디렉터리의 각 항목에 대해 QFileInfo 의 인스턴스를 생성하기 때문에 메모리 사용량이 급증할 수 있습니다. 항목을 하나씩 순회하는 것이 목적이라면 QDirListing 의 사용을 고려해 보십시오.
entryList(), setNameFilters(), setSorting(), setFilter(), isReadable(), exists()도 참조하십시오 .
QFileInfoList QDir::entryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
해당 디렉터리에 있는 모든 파일과 디렉터리에 대한 ` QFileInfo ` 객체 목록을 반환하며, 이 목록은 이전에 ` setNameFilters()` 및 ` setFilter()`를 통해 설정된 이름 및 속성 필터에 따라 정렬되고, ` setSorting()`를 통해 설정된 플래그에 따라 정렬됩니다.
속성 필터 및 정렬 사양은 filters 및 sort 인수를 사용하여 재정의할 수 있습니다.
디렉터리를 읽을 수 없거나, 디렉터리가 존재하지 않거나, 사양에 일치하는 항목이 없는 경우 빈 리스트를 반환합니다.
대용량 디렉터리의 경우, 이 함수는 디렉터리의 각 항목마다 QFileInfo 인스턴스를 생성하기 때문에 메모리 사용량이 급증할 수 있습니다. 항목을 하나씩 순회하는 것이 목적이라면 QDirListing 사용을 고려하십시오.
이 함수는 오버로드된 함수입니다.
entryList(), setNameFilters(), setSorting(), setFilter(), isReadable() 및 exists()도 참조하십시오 .
QStringList QDir::entryList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
해당 디렉토리 내의 모든 파일 및 디렉토리 이름 목록을 반환하며, 이 목록은 이전에 setNameFilters() 및 setFilter()를 통해 설정된 이름 및 속성 필터에 따라 정렬되고, setSorting()를 통해 설정된 플래그에 따라 정렬됩니다.
이름 필터, 파일 속성 필터 및 정렬 사양은 nameFilters, filters 및 sort 인수를 사용하여 재정의할 수 있습니다.
디렉터리를 읽을 수 없거나, 디렉터리가 존재하지 않거나, 사양에 일치하는 항목이 없는 경우 빈 리스트를 반환합니다.
대용량 디렉터리의 경우, 이 함수는 디렉터리의 각 항목에 대해 QString 의 인스턴스를 생성하기 때문에 메모리 사용량이 급증할 수 있습니다. 항목을 하나씩 순회하는 것이 목적이라면 QDirListing 의 사용을 고려해 보십시오.
entryInfoList(), setNameFilters(), setSorting(), setFilter()도 참조하십시오 .
QStringList QDir::entryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
해당 디렉토리 내의 모든 파일 및 디렉토리 이름 목록을 반환하며, 이 목록은 이전에 ` setNameFilters()` 및 ` setFilter()`를 통해 설정된 이름 및 속성 필터에 따라 정렬되고, ` setSorting()`를 통해 설정된 플래그에 따라 정렬됩니다.
속성 필터 및 정렬 사양은 filters 및 sort 인수를 사용하여 재정의할 수 있습니다.
디렉터리를 읽을 수 없거나, 디렉터리가 존재하지 않거나, 사양에 일치하는 항목이 없는 경우 빈 목록을 반환합니다.
참고: 존재하지 않는 파일을 가리키는 심볼릭 링크를나열하려면 , 필터에 System 를 전달해야 합니다.
대용량 디렉터리의 경우, 이 함수는 디렉터리의 각 항목마다 QString 의 인스턴스를 생성하므로 메모리 사용량이 급증할 수 있습니다. 항목을 하나씩 순회하는 것이 목적이라면 QDirListing 를 사용하는 것을 고려해 보십시오.
이 함수는 오버로드된 함수입니다.
entryInfoList(), setNameFilters(), setSorting() 및 setFilter()도 참조하십시오 .
bool QDir::exists(const QString &name) const
name 라는 파일이 존재하면 true 를 반환하고, 그렇지 않으면 false를 반환합니다.
name 에 절대 파일 경로가 포함되어 있지 않은 한, 파일 이름은 해당 디렉터리 자체를 기준으로 한 상대 경로로 간주되므로, 이 함수는 일반적으로 디렉터리 내의 파일 존재 여부를 확인하는 데 사용됩니다.
QFileInfo::exists() 및 QFile::exists()도 참조하십시오 .
bool QDir::exists() const
디렉터리가 존재하면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다. (동일한 이름의 파일이 발견되면 이 함수는 `false`를 반환합니다).
인수를 받는 이 함수의 오버로드 버전은 디렉터리 내의 파일 및 디렉터리 존재 여부를 확인하는 데 사용됩니다.
이 함수는 오버로드된 함수입니다.
QFileInfo::exists() 및 QFile::exists()도 참조하십시오 .
QString QDir::filePath(const QString &fileName) const
디렉터리 내 파일의 경로명을 반환합니다. 파일이 디렉터리에 실제로 존재하는지 여부는 확인하지 않습니다. 단, exists()을 참조하십시오. QDir 가 상대 경로인 경우, 반환되는 경로명도 상대 경로가 됩니다. fileName 에 포함된 중복된 구분 기호나 “.” 및 “..” 디렉터리는 제거되지 않습니다( cleanPath() 참조).
dirName(), absoluteFilePath(), isRelative(), canonicalPath()도 참조하십시오 .
[since 6.0] std::filesystem::path QDir::filesystemAbsolutePath() const
absolutePath()을 std::filesystem::path 로 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
absolutePath()도 참조하십시오 .
[since 6.0] std::filesystem::path QDir::filesystemCanonicalPath() const
canonicalPath()를 std::filesystem::path 로 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
canonicalPath()도 참조하십시오 .
[since 6.0] std::filesystem::path QDir::filesystemPath() const
path()를 std::filesystem::path 로 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
path()도 참조하십시오 .
QDir::Filters QDir::filter() const
setFilter() 함수로 설정된 값을 반환합니다.
setFilter()도 참조하십시오 .
[static] QString QDir::fromNativeSeparators(const QString &pathName)
'/'를 파일 구분자로 사용하여 ` pathName `를 반환합니다. 예를 들어, Windows에서 `fromNativeSeparators("c:\\winnt\\system32")`를 호출하면 "c:/winnt/system32"가 반환됩니다.
일부 운영 체제(예: Unix)에서는 반환된 문자열이 인자와 동일할 수 있습니다.
toNativeSeparators() 및 separator()도 참조하십시오 .
[static] QDir QDir::home()
사용자의 홈 디렉터리를 반환합니다.
이 디렉터리는 홈 디렉터리의 절대 경로를 사용하여 생성되며, 이로 인해 path()의 결과가 absolutePath()의 결과와 동일하게 됩니다.
자세한 내용은 homePath()을 참조하십시오.
drives(), current(), root() 및 temp()도 참조하십시오 .
[static] QString QDir::homePath()
사용자의 홈 디렉터리의 절대 경로를 반환합니다.
Windows 환경에서 이 함수는 현재 사용자의 프로필 디렉터리를 반환합니다. 일반적으로 다음과 같습니다:
C:/Users/UsernametoNativeSeparators() 함수를 사용하여 구분 기호를 해당 운영 체제에 적합한 형태로 변환하십시오.
현재 사용자의 프로필 디렉터리가 존재하지 않거나 검색할 수 없는 경우, 존재하고 사용 가능한 경로가 발견될 때까지 다음 대안들이 (지정된 순서대로) 확인됩니다:
USERPROFILE환경 변수에 지정된 경로.HOMEDRIVE및HOMEPATH환경 변수를 연결하여 형성된 경로.HOME환경 변수에 의해 지정된 경로.- rootPath() 함수가 반환하는 경로(이 함수는
SystemDrive환경 변수를 사용합니다) C:/디렉터리.
Windows 이외의 운영 체제에서는 HOME 환경 변수가 존재할 경우 이를 사용하며, 그렇지 않은 경우 rootPath() 함수가 반환하는 경로를 사용합니다.
home(), currentPath(), rootPath() 및 tempPath()도 참조하십시오 .
bool QDir::isAbsolute() const
디렉터리의 경로가 절대 경로인 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다. ` isAbsolutePath()`를 참조하십시오.
참고: 콜론(:)으로 시작하는경로는 QResource 를 나타내므로 항상 절대 경로로 간주됩니다.
isRelative(), makeAbsolute() 및 cleanPath()도 참조하십시오 .
[static] bool QDir::isAbsolutePath(const QString &path)
path 가 절대 경로인 경우 true 를 반환하고, 상대 경로인 경우 false 를 반환합니다.
참고: 콜론(:)으로 시작하는경로는 항상 절대 경로로 간주됩니다. 이는 QResource 를 나타내기 때문입니다.
isAbsolute(), isRelativePath(), makeAbsolute(), cleanPath() 및 QResource도 참조하십시오 .
bool QDir::isEmpty(QDir::Filters filters = Filters(AllEntries | NoDotAndDotDot)) const
디렉터리가 비어 있는지 여부를 반환합니다.
count() == 0 에 QDir::AllEntries | QDir::NoDotAndDotDot 필터를 적용한 것과 동일하지만, 디렉터리에 항목이 하나라도 있는지 여부만 확인하므로 더 빠릅니다.
참고: filters 플래그에 QDir::NoDotAndDotDot 를 포함하도록 설정하지 않는 한 (기본값은 포함됨), 빈 디렉터리는 존재하지 않습니다.
count(), entryList(), setFilter()도 참조하십시오 .
bool QDir::isReadable() const
디렉터리가 읽기 가능하고 파일명을 지정하여 파일을 열 수 있는 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
경고: 이 함수가 거짓값을 반환한다고 해서 디렉터리의 파일에 접근할 수 없다는 것을 보장하지는 않습니다.
QFileInfo::isReadable()도 참조하십시오 .
bool QDir::isRelative() const
디렉터리 경로가 상대 경로인 경우 ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다. (유닉스 환경에서 경로가 "/"로 시작하지 않으면 상대 경로로 간주됩니다.)
참고: 콜론(:)으로 시작하는경로는 항상 절대 경로로 간주됩니다. 이는 QResource 를 나타내기 때문입니다.
makeAbsolute(), isAbsolute(), isAbsolutePath(), cleanPath()도 참조하십시오 .
[static] bool QDir::isRelativePath(const QString &path)
path 가 상대 경로인 경우 true 를 반환하고, 절대 경로인 경우 false 를 반환합니다.
참고: 콜론(:)으로 시작하는경로는 항상 절대 경로로 간주되며, 이는 QResource 를 나타내기 때문입니다.
isRelative(), isAbsolutePath(), makeAbsolute()도 참조하십시오 .
bool QDir::isRoot() const
디렉터리가 루트 디렉터리인 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
참고: 디렉터리가 루트 디렉터리로 연결되는 심볼릭 링크인경우 , 이 함수는 false 를 반환합니다. 이를 확인하려면 canonicalPath()를 사용하십시오. 예를 들어,
QDir dir("/tmp/root_link");
dir = dir.canonicalPath();
if (dir.isRoot())
qWarning("It is a root link");[static constexpr noexcept] QChar QDir::listSeparator()
네이티브 경로 구분자를 반환합니다. Unix에서는 ':', Windows에서는 ';'입니다.
separator()도 참조하십시오 .
bool QDir::makeAbsolute()
디렉터리 경로를 절대 경로로 변환합니다. 이미 절대 경로인 경우에는 아무 작업도 수행되지 않습니다. 변환에 성공하면 ` true `을 반환하고, 그렇지 않으면 ` false`을 반환합니다.
isAbsolute(), isAbsolutePath(), isRelative() 및 cleanPath()도 참조하십시오 .
[static] bool QDir::match(const QString &filter, const QString &fileName)
fileName 가 와일드카드(glob) 패턴 filter 과 일치하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. filter 에는 공백이나 세미콜론으로 구분된 여러 패턴이 포함될 수 있습니다. 일치 여부는 대소문자를 구분하지 않습니다.
QRegularExpression::fromWildcard(), entryList(), entryInfoList()도 참조하십시오 .
[static] bool QDir::match(const QStringList &filters, const QString &fileName)
fileName 가 filters 목록에 있는 와일드카드(glob) 패턴 중 하나와 일치하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. 일치 여부는 대소문자를 구분하지 않습니다.
이 함수는 오버로드된 함수입니다.
QRegularExpression::fromWildcard(), entryList(), entryInfoList()도 참조하십시오 .
bool QDir::mkdir(const QString &dirName, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const
지정된 permissions 를 사용하여 dirName 라는 하위 디렉터리를 생성합니다.
permissions 가 std::nullopt (기본값)인 경우, 이 함수는 기본 권한을 설정합니다.
성공 시 true 을 반환하고, 작업이 실패했거나 dirName 가 이미 존재하는 경우 false 을 반환합니다.
dirName 가 이미 존재하는 경우, 이 메서드는 해당 파일의 권한을 변경하지 않습니다.
POSIX 시스템에서 permissions 는 umask (파일 생성 마스크)에 의해 수정되며, 이는 일부 권한 비트가 비활성화될 수 있음을 의미합니다.
Windows에서는 기본적으로 새 디렉터리가 상위 디렉터리에서 권한을 상속받습니다. permissions 는 ACL을 사용하여 에뮬레이션됩니다. 그룹에 다른 그룹보다 적은 권한이 부여된 경우, 이러한 ACL은 비정규 순서로 정렬될 수 있습니다. 이러한 권한을 가진 파일 및 디렉터리는 '속성' 대화 상자의 '보안' 탭을 열면 경고가 표시됩니다. 그룹에 '다른 사용자'에게 부여된 모든 권한을 부여하면 이러한 경고를 피할 수 있습니다.
참고: Qt 6.10에서 permissions 매개변수가 추가되었습니다. mkdir(const QString &) 의 기존 동작(플랫폼별 기본 권한 사용)을 적용하려면 permissions 을 std::nullopt (기본값)으로 설정하십시오. 이 새로운 방식은 mkdir(const QString &, QFile::Permissions) 오버로드를 투명하게 대체합니다.
rmdir(), mkpath(), rmpath()도 참조하십시오 .
bool QDir::mkpath(const QString &dirPath, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const
dirPath 라는 이름의 디렉터리를 생성합니다.
dirPath 이 아직 존재하지 않는 경우, 이 메서드는 permissions 를 사용하여 해당 디렉터리와 존재하지 않는 상위 디렉터리를 함께 생성합니다.
dirPath 가 이미 존재하는 경우, 이 메서드는 해당 디렉터리의 권한을 변경하지 않으며, 이미 존재하는 상위 디렉터리도 마찬가지입니다.
permissions 가 std::nullopt (기본값)인 경우, 이 함수는 기본 권한을 설정합니다.
성공하거나 dirPath 가 이미 존재하는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
POSIX 시스템에서는 permissions 가 현재 프로세스의 umask (파일 생성 마스크)에 의해 수정되므로, 일부 권한 비트가 비활성화될 수 있습니다.
Windows에서는 기본적으로 새 디렉터리가 상위 디렉터리의 권한을 상속받습니다. permissions 는 ACL을 사용하여 에뮬레이션됩니다. 그룹에 다른 그룹보다 적은 권한이 부여된 경우, 이러한 ACL은 비정규 순서로 정렬될 수 있습니다. 이러한 권한을 가진 파일 및 디렉터리는 ‘속성’ 대화 상자의 ‘보안’ 탭을 열 때 경고가 표시됩니다. 그룹에 ‘다른 사용자’에게 부여된 모든 권한을 부여하면 이러한 경고를 피할 수 있습니다.
참고: Qt 6.10에서 permissions 매개변수가 추가되었습니다. mkpath(const QString &) 의 기존 동작(플랫폼별 기본 권한 사용)을 적용하려면 permissions 를 std::nullopt (기본값)로 설정하십시오.
rmpath(), mkdir(), rmdir()도 참조하십시오 .
QStringList QDir::nameFilters() const
setNameFilters() 함수로 설정된 문자열 목록을 반환합니다.
setNameFilters()도 참조하십시오 .
QString QDir::path() const
경로를 반환합니다. 이 경로에는 심볼릭 링크가 포함될 수 있지만, 불필요한 “.”, “..” 또는 중복된 구분 기호는 절대 포함되지 않습니다.
반환된 경로는 절대 경로이거나 상대 경로일 수 있습니다( setPath() 참조).
setPath(), absolutePath(), exists(), cleanPath(), dirName(), absoluteFilePath(), toNativeSeparators() 및 makeAbsolute()도 참조하십시오 .
void QDir::refresh() const
디렉터리 정보를 새로 고칩니다.
QString QDir::relativeFilePath(const QString &fileName) const
해당 디렉터리를 기준으로 fileName 의 경로를 반환합니다.
QDir dir("/home/bob");
QString s;
s = dir.relativeFilePath("images/file.jpg"); // s is "images/file.jpg"
s = dir.relativeFilePath("/home/mary/file.txt"); // s is "../mary/file.txt"absoluteFilePath(), filePath(), canonicalPath()도 참조하십시오 .
bool QDir::remove(const QString &fileName)
fileName 파일을 삭제합니다.
파일이 성공적으로 삭제된 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
bool QDir::removeRecursively()
해당 디렉터리와 그 안의 모든 내용을 삭제합니다.
성공하면 ` true `를 반환하고, 그렇지 않으면 `false`를 반환합니다.
파일이나 디렉터리를 제거할 수 없는 경우, removeRecursively()는 계속 진행하여 가능한 한 많은 파일과 하위 디렉터리를 삭제하려고 시도한 후, false 를 반환합니다.
디렉터리가 이미 제거된 경우, 이 메서드는 true 을 반환합니다(예상된 결과에 이미 도달했음).
참고: 이 함수는 (임시 디렉터리와 같은) 애플리케이션 내부에서 사용되는 작은 디렉터리를 제거하기 위한 것이며, 사용자가 볼 수 있는 디렉터리를 제거하기 위한 것은 아닙니다. 사용자가 볼 수 있는 작업의 경우, 오류가 발생했을 때 사용자에게 더 정확하게 오류를 보고하고, 해결책을 제시하며, 삭제 작업이 몇 분 정도 걸릴 수 있으므로 진행 상황을 표시하는 것이 더 권장됩니다.
bool QDir::rename(const QString &oldName, const QString &newName)
파일이나 디렉터리의 이름을 oldName 에서 newName 로 변경하며, 성공하면 true를 반환하고, 그렇지 않으면 false 를 반환합니다.
대부분의 파일 시스템에서 rename()은 oldName 가 존재하지 않거나 새 이름의 파일이 이미 존재하는 경우에만 실패합니다. 그러나 rename()이 실패할 수 있는 다른 이유도 있습니다. 예를 들어, 적어도 하나의 파일 시스템에서는 newName 가 열려 있는 파일을 가리키는 경우 rename()이 실패합니다.
oldName 가 즉시 이름을 변경할 수 없는 파일(디렉터리가 아닌)인 경우, Qt는 oldName 를 newName 로 복사한 다음 oldName 를 제거하려고 시도합니다.
QFile::rename()도 참조하십시오 .
bool QDir::rmdir(const QString &dirName) const
dirName 로 지정된 디렉터리를 삭제합니다.
rmdir()이 성공하려면 디렉터리가 비어 있어야 합니다.
성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
mkdir()도 참조하십시오 .
bool QDir::rmpath(const QString &dirPath) const
dirPath 디렉터리 경로를 제거합니다.
이 함수는 dirPath 내의 모든 상위 디렉터리가 비어 있는 경우, 해당 디렉터리를 모두 삭제합니다. 이는 mkpath(dirPath) 함수와 반대되는 동작입니다.
성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
mkpath()도 참조하십시오 .
[static] QDir QDir::root()
루트 디렉터리를 반환합니다.
이 디렉터리는 루트 디렉터리의 절대 경로를 사용하여 생성되며, path()의 결과가 absolutePath()의 결과와 동일하도록 보장합니다.
자세한 내용은 rootPath()을 참조하십시오.
drives(), current(), home() 및 temp()도 참조하십시오 .
[static] QString QDir::rootPath()
루트 디렉터리의 절대 경로를 반환합니다.
유닉스 운영 체제의 경우 "/"를 반환합니다. 윈도우 파일 시스템의 경우 일반적으로 "c:/"를 반환합니다.
root(), drives(), currentPath(), homePath(), tempPath()함수도 참조하십시오 .
[static] QStringList QDir::searchPaths(const QString &prefix)
prefix 의 검색 경로를 반환합니다.
setSearchPaths() 및 addSearchPath()도 참조하십시오 .
[static] QChar QDir::separator()
기본 디렉터리 구분자를 반환합니다. 유닉스에서는 "/", 윈도우에서는 "\"입니다.
파일 경로를 구성할 때 이 함수를 사용할 필요는 없습니다. 항상 "/"를 사용하면 Qt가 기본 운영 체제에 맞게 경로를 변환합니다. 사용자에게 해당 운영 체제의 구분 기호를 사용하여 경로를 표시하려면 toNativeSeparators()를 사용하십시오.
listSeparator()도 참조하십시오 .
[static] bool QDir::setCurrent(const QString &path)
애플리케이션의 현재 작업 디렉터리를 path 로 설정합니다. 디렉터리 변경이 성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
QString absolute = "/local/bin";
QString relative = "local/bin";
QFileInfo absFile(absolute);
QFileInfo relFile(relative);
QDir::setCurrent(QDir::rootPath());
// absFile and relFile now point to the same file
QDir::setCurrent("/tmp");
// absFile now points to "/local/bin",
// while relFile points to "/tmp/local/bin"current(), currentPath(), home(), root() 및 temp()도 참조하십시오 .
void QDir::setFilter(QDir::Filters filters)
entryList() 및 entryInfoList()에서 사용하는 필터를 filters 로 설정합니다. 이 필터는 entryList() 및 entryInfoList()가 반환해야 할 파일의 종류를 지정하는 데 사용됩니다. QDir::Filter 를 참조하십시오.
filter() 및 setNameFilters()도 참조하십시오 .
void QDir::setNameFilters(const QStringList &nameFilters)
entryList() 및 entryInfoList()에서 사용하는 이름 필터를 nameFilters 에서 지정한 필터 목록으로 설정합니다.
각 이름 필터는 * 및 ? 와일드카드를 인식하는 와일드카드(글로빙) 필터입니다. QRegularExpression::fromWildcard()을 참조하십시오.
예를 들어, 다음 코드는 QDir 에 세 개의 이름 필터를 설정하여, 일반적으로 C++ 소스 파일에 사용되는 확장자를 가진 파일만 나열되도록 합니다:
QStringList filters;
filters << "*.cpp" << "*.cxx" << "*.cc";
dir.setNameFilters(filters);nameFilters() 및 setFilter()도 참조하십시오 .
void QDir::setPath(const QString &path)
디렉터리의 경로를 path 로 설정합니다. 경로에서 중복된 ".", ".." 및 여러 개의 구분 기호는 제거됩니다. 이 경로의 디렉터리가 실제로 존재하는지 여부는 확인되지 않지만, exists()를 사용하여 직접 확인할 수 있습니다.
경로는 절대 경로이거나 상대 경로일 수 있습니다. 절대 경로는 디렉터리 구분자 "/"로 시작하며(Windows에서는 선택적으로 그 앞에 드라이브 명을 붙일 수 있음), 상대 파일 이름은 디렉터리 이름이나 파일 이름으로 시작하며, 현재 디렉터리를 기준으로 한 상대 경로를 지정합니다. 절대 경로의 예로는 "/tmp/quartz"라는 문자열이 있으며, 상대 경로는 "src/fatlib"과 같이 표시될 수 있습니다.
path(), absolutePath(), exists(), cleanPath(), dirName(), absoluteFilePath(), isRelative(), makeAbsolute()도 참조하십시오 .
[since 6.0] void QDir::setPath(const std::filesystem::path &path)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[static] void QDir::setSearchPaths(const QString &prefix, const QStringList &searchPaths)
prefix 접두사가 붙은 파일 이름에 대한 Qt의 검색 경로를 searchPaths 로 설정하거나 변경합니다.
파일 이름의 접두사를 지정하려면 접두사 뒤에 콜론(:) 하나를 붙입니다(예: "images:undo.png", "xmldocs:books.xml"). prefix 에는 영문자나 숫자만 포함될 수 있습니다(예: 콜론이나 슬래시는 포함할 수 없음).
Qt는 이 검색 경로를 사용하여 알려진 접두사가 포함된 파일을 찾습니다. 검색 경로 항목은 첫 번째 항목부터 순서대로 확인됩니다.
QDir::setSearchPaths("icons", QStringList(QDir::homePath() + "/images"));
QDir::setSearchPaths("docs", QStringList(":/embeddedDocuments"));
//...
QPixmap pixmap("icons:undo.png"); // will look for undo.png in QDir::homePath() + "/images"
QFile file("docs:design.odf"); // will look in the :/embeddedDocuments resource pathWindows 드라이브 문자와의 충돌을 피하기 위해 파일 이름 접두사는 최소 2자 이상이어야 합니다.
검색 경로에는 Qt 리소스 시스템에 대한 경로가 포함될 수 있습니다.
searchPaths()도 참조하십시오 .
void QDir::setSorting(QDir::SortFlags sort)
entryList() 및 entryInfoList()에서 사용하는 정렬 순서를 설정합니다.
sort 는 QDir::SortFlag 열거형의 값들을 OR 연산으로 결합하여 지정됩니다.
sorting() 및 SortFlag도 참조하십시오 .
QDir::SortFlags QDir::sorting() const
setSorting() 함수를 통해 설정된 값을 반환합니다.
setSorting() 및 SortFlag도 참조하십시오 .
[noexcept] void QDir::swap(QDir &other)
이 QDir 인스턴스를 other 로 교체합니다. 이 작업은 매우 빠르게 수행되며 실패하는 일이 없습니다.
[static] QDir QDir::temp()
시스템의 임시 디렉터리를 반환합니다.
이 디렉터리는 임시 디렉터리의 절대 표준 경로를 사용하여 구성되며, 이를 통해 path()의 결과가 absolutePath()의 결과와 동일하도록 보장합니다.
자세한 내용은 tempPath()을 참조하십시오.
drives(), current(), home() 및 root()도 참조하십시오 .
[static] QString QDir::tempPath()
시스템의 임시 디렉터리의 절대 표준 경로를 반환합니다.
Unix/Linux 시스템에서는 이 경로가 TMPDIR 환경 변수에 지정된 경로이며, TMPDIR 가 정의되지 않은 경우 /tmp 에 지정된 경로입니다. Windows에서는 일반적으로 TEMP 또는 TMP 환경 변수에 지정된 경로입니다. 이 메서드가 반환하는 경로는 (드라이브의) 루트 디렉터리가 아닌 한 디렉터리 구분자로 끝나지 않습니다.
temp(), currentPath(), homePath(), rootPath()도 참조하십시오 .
[static] QString QDir::toNativeSeparators(const QString &pathName)
'/' 구분자를 기본 운영 체제에 적합한 구분자로 변환한 pathName 를 반환합니다.
Windows에서 toNativeSeparators("c:/winnt/system32")는 "c:\winnt\system32 "를 반환합니다.
일부 운영 체제(예: 유닉스)에서는 반환된 문자열이 인자와 동일할 수 있습니다.
fromNativeSeparators() 및 separator()도 참조하십시오 .
[noexcept] QDir &QDir::operator=(QDir &&other)
other 를 이 QDir 인스턴스에 할당합니다.
QDir &QDir::operator=(const QDir &dir)
dir 객체의 복사본을 생성하여 이 QDir 객체에 할당합니다.
QString QDir::operator[](qsizetype pos) const
파일 이름 목록에서 pos 위치에 있는 파일 이름을 반환합니다. 이는 entryList().at(index)와 동일합니다. pos 는 목록 내에서 유효한 인덱스 위치여야 합니다(즉, 0 <= pos < count()).
참고: Qt 6.5 이전버전에서는 pos 가 int 였으며, qsizetype 가 아니었습니다.
관련 비회원
[noexcept] bool operator!=(const QDir &lhs, const QDir &rhs)
디렉터리 lhs 과 디렉터리 rhs 의 경로가 다르거나 정렬 또는 필터 설정이 다른 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
예시:
// 현재 디렉터리는 "/usr/local"입니다
QDir d1("/usr/local/bin");
d1.setFilter(QDir::Executable);
QDir d2("bin");
if (d1 != d2)
qDebug("They differ");[noexcept] bool operator==(const QDir &lhs, const QDir &rhs)
디렉터리 lhs 와 디렉터리 rhs 의 경로가 동일하고 정렬 및 필터 설정도 동일한 경우 true 를 반환하며, 그렇지 않은 경우 false 를 반환합니다.
예시:
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.