QFileSystemWatcher Class
QFileSystemWatcher 클래스는 파일 및 디렉터리의 변경 사항을 모니터링하기 위한 인터페이스를 제공합니다. 더 보기...
| 헤더: | #include <QFileSystemWatcher> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 상속: | QObject |
- 상속된 멤버를 포함한 모든 멤버 목록
- QFileSystemWatcher는 입출력 및 네트워킹의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
공개 함수
| QFileSystemWatcher(QObject *parent = nullptr) | |
| QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr) | |
| virtual | ~QFileSystemWatcher() |
| bool | addPath(const QString &path) |
| QStringList | addPaths(const QStringList &paths) |
| QStringList | directories() const |
| QStringList | files() const |
| bool | removePath(const QString &path) |
| QStringList | removePaths(const QStringList &paths) |
신호
| void | directoryChanged(const QString &path) |
| void | fileChanged(const QString &path) |
상세 설명
QFileSystemWatcher는 지정된 경로 목록을 감시하여 파일 시스템에서 파일 및 디렉터리의 변경 사항을 모니터링합니다.
특정 파일이나 디렉터리를 감시하려면 addPath()를 호출하십시오. addPaths() 함수를 사용하여 여러 경로를 추가할 수 있습니다. removePath() 및 removePaths() 함수를 사용하여 기존 경로를 제거할 수 있습니다.
QFileSystemWatcher는 자신에게 추가된 각 경로를 검사합니다. QFileSystemWatcher에 추가된 파일은 files() 함수를 사용하여, 디렉터리는 directories() 함수를 사용하여 접근할 수 있습니다.
fileChanged() 신호는 파일이 수정되거나 이름이 변경되거나 디스크에서 삭제되었을 때 발생합니다. 마찬가지로, directoryChanged() 신호는 디렉터리나 그 내용이 수정되거나 삭제되었을 때 발생합니다. QFileSystemWatcher는 파일이 이름이 변경되거나 디스크에서 삭제되면 해당 파일에 대한 모니터링을 중단하며, 디렉터리는 디스크에서 삭제되면 모니터링을 중단한다는 점에 유의하십시오.
- 참고:
- inotify를 지원하지 않는 Linux 커널이 실행되는 시스템에서는, 감시 대상 경로가 포함된 파일 시스템을 마운트 해제할 수 없습니다.
- 파일 및 디렉터리의 변경 사항을 감시하는 작업은 시스템 리소스를 소모합니다. 이는 프로세스가 동시에 감시할 수 있는 파일 및 디렉터리의 수에 제한이 있음을 의미합니다. 예를 들어, 모든 BSD 계열 시스템에서는 모니터링되는 각 파일에 대해 하나의 열린 파일 디스크립터가 필요합니다. 일부 시스템은 기본적으로 열린 파일 디스크립터의 수를 256개로 제한합니다. 즉, 프로세스가 파일 시스템 모니터에 256개 이상의 파일이나 디렉터리를 추가하려고 하면 ` addPath()` 및 ` addPaths()` 함수가 실패하게 됩니다. 또한, 프로세스에서는 모니터링 대상 파일에 대한 파일 디스크립터 외에도 다른 파일 디스크립터를 열어둘 수 있으며, 이러한 다른 열린 디스크립터들도 총 수에 포함된다는 점에 유의하십시오. macOS는 다른 백엔드를 사용하므로 이러한 문제가 발생하지 않습니다.
멤버 함수 문서
QFileSystemWatcher::QFileSystemWatcher(QObject *parent = nullptr)
지정된 ` parent`을 사용하여 새로운 파일 시스템 감시자 객체를 생성합니다.
QFileSystemWatcher::QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr)
지정된 ` parent `를 사용하여, 지정된 ` paths ` 목록을 모니터링하는 새로운 파일 시스템 감시자 객체를 생성합니다.
[virtual noexcept] QFileSystemWatcher::~QFileSystemWatcher()
파일 시스템 감시자를 제거합니다.
bool QFileSystemWatcher::addPath(const QString &path)
path 가 존재할 경우, 파일 시스템 감시기에 path 를 추가합니다. 해당 경로가 존재하지 않거나, 이미 파일 시스템 감시기에 의해 모니터링되고 있는 경우에는 경로가 추가되지 않습니다.
path 가 디렉터리를 지정하는 경우, path 가 수정되거나 디스크에서 삭제되면 directoryChanged() 신호가 발생하며, 그렇지 않은 경우 path 가 수정, 이름 변경 또는 삭제되면 fileChanged() 신호가 발생합니다.
감시가 성공하면 true가 반환됩니다.
감시 실패의 원인은 일반적으로 시스템에 따라 다르지만, 리소스가 존재하지 않거나, 액세스 실패, 또는 플랫폼에 제한이 있는 경우 총 감시 횟수 제한에 도달한 경우 등이 포함될 수 있습니다.
참고: 동시에 감시할 수 있는 파일 및 디렉터리 수에는 시스템에 따라 제한이있을 수있습니다 . 이 제한에 도달하면 path 는 감시되지 않으며, false가 반환됩니다.
addPaths() 및 removePath()도 참조하십시오 .
QStringList QFileSystemWatcher::addPaths(const QStringList &paths)
paths 에 있는 각 경로를 파일 시스템 감시기에 추가합니다. 경로가 존재하지 않거나, 이미 파일 시스템 감시기에 의해 모니터링되고 있는 경우에는 경로가 추가되지 않습니다.
경로가 디렉터리를 지정하는 경우, 해당 경로가 수정되거나 디스크에서 삭제되면 ` directoryChanged()` 신호가 발생합니다. 그렇지 않은 경우, 경로가 수정, 이름 변경 또는 삭제되면 ` fileChanged()` 신호가 발생합니다.
반환 값은 감시할 수 없었던 경로들의 목록입니다.
감시 실패의 원인은 일반적으로 시스템에 따라 다르지만, 리소스가 존재하지 않거나, 액세스 실패, 또는 플랫폼에 제한이 있는 경우 총 감시 횟수 제한에 도달한 경우 등이 포함될 수 있습니다.
참고: 동시에 감시할 수 있는 파일 및 디렉터리 수에는 시스템에 따라 제한이있을 수있습니다 . 이 제한에 도달한 경우, 초과된 paths 은 감시되지 않으며 반환된 QStringList 에 추가됩니다.
addPath() 및 removePaths()도 참조하십시오 .
QStringList QFileSystemWatcher::directories() const
감시 중인 디렉터리의 경로 목록을 반환합니다.
files()도 참조하십시오 .
[private signal] void QFileSystemWatcher::directoryChanged(const QString &path)
이 신호는 지정된 path 의 디렉터리가 수정되거나(예: 파일이 추가되거나 삭제될 때) 디스크에서 제거될 때 발생합니다. 단, 짧은 시간 내에 여러 차례의 변경이 발생한 경우, 일부 변경 사항에 대해서는 이 신호가 발생하지 않을 수도 있습니다. 그러나 일련의 변경 사항 중 마지막 변경 사항에 대해서는 항상 이 신호가 발생합니다.
참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만, 사용자가 직접 발생시킬 수는 없습니다.
fileChanged()도 참조하십시오 .
[private signal] void QFileSystemWatcher::fileChanged(const QString &path)
이 신호는 지정된 path 에 있는 파일이 수정되거나, 이름이 변경되거나, 디스크에서 삭제될 때 발생합니다.
참고: 안전조치로 , 많은 애플리케이션은 새 파일을 작성한 다음 기존 파일을 삭제하는 방식으로 열려 있는 파일을 저장합니다. 슬롯 함수에서 ` watcher.files().contains(path)`를 확인할 수 있습니다. ` false`가 반환되면 파일이 여전히 존재하는지 확인한 다음, ` addPath() `를 호출하여 해당 파일을 계속 감시하도록 하십시오.
참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만, 사용자가 직접 발송할 수는 없습니다.
directoryChanged()도 참조하십시오 .
QStringList QFileSystemWatcher::files() const
감시 중인 파일의 경로 목록을 반환합니다.
directories()도 참조하십시오 .
bool QFileSystemWatcher::removePath(const QString &path)
지정된 path 를 파일 시스템 감시자에서 제거합니다.
감시가 성공적으로 제거되면 true가 반환됩니다.
감시 제거가 실패하는 이유는 일반적으로 시스템에 따라 다르지만, 예를 들어 경로가 이미 삭제된 경우 등이 있을 수 있습니다.
removePaths() 및 addPath()도 참조하십시오 .
QStringList QFileSystemWatcher::removePaths(const QStringList &paths)
지정된 ‘ paths ’를 파일 시스템 감시자에서 제거합니다.
반환 값은 감시 해제 작업이 성공적으로 수행되지 못한 경로들의 목록입니다.
감시 제거가 실패하는 이유는 일반적으로 시스템에 따라 다르지만, 예를 들어 해당 경로가 이미 삭제되었기 때문일 수도 있습니다.
removePath() 및 addPaths()도 참조하십시오 .
© 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.