QFileSystemWatcher Class

QFileSystemWatcher 클래스는 파일과 디렉터리의 수정 사항을 모니터링하기 위한 인터페이스를 제공합니다. 더 보기...

Header: #include <QFileSystemWatcher>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
상속합니다: QObject

참고: 이 클래스의 모든 함수는 재진입합니다.

공용 함수

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)

Signals

void directoryChanged(const QString &path)
void fileChanged(const QString &path)

상세 설명

QFileSystemWatcher는 지정된 경로 목록을 감시하여 파일 시스템에서 파일 및 디렉터리의 변경 사항을 모니터링합니다.

특정 파일이나 디렉토리를 감시하려면 addPath()를 호출합니다. addPaths () 함수를 사용하여 여러 경로를 추가할 수 있습니다. 기존 경로는 removePath() 및 removePaths() 함수를 사용하여 제거할 수 있습니다.

QFileSystemWatcher는 추가된 각 경로를 검사합니다. QFileSystemWatcher에 추가된 파일은 files() 함수를 사용하여 액세스할 수 있고, 디렉터리는 directories() 함수를 사용하여 액세스할 수 있습니다.

fileChanged() 신호는 파일이 수정, 이름 변경 또는 디스크에서 제거될 때 발생합니다. 마찬가지로 directoryChanged() 신호는 디렉토리 또는 그 콘텐츠가 수정되거나 제거될 때 발생합니다. 파일은 디스크에서 이름이 변경되거나 제거되면, 디렉토리는 디스크에서 제거되면 QFileSystemWatcher가 모니터링을 중지합니다.

  • 참고:
    • 이노티파이를 지원하지 않는 Linux 커널을 실행하는 시스템에서는 감시 경로가 포함된 파일 시스템을 마운트 해제할 수 없습니다.
    • 파일 및 디렉터리의 수정 여부를 모니터링하는 작업은 시스템 리소스를 소모합니다. 이는 프로세스에서 동시에 모니터링할 수 있는 파일 및 디렉터리 수에 제한이 있음을 의미합니다. 예를 들어, 모든 BSD 변형에서는 모니터링되는 각 파일에 대해 열린 파일 설명자가 필요합니다. 일부 시스템은 기본적으로 열린 파일 기술자의 수를 256개로 제한합니다. 즉, 프로세스가 파일 시스템 모니터에 256개 이상의 파일 또는 디렉터리를 추가하려고 하면 addPath() 및 addPaths()이 실패합니다. 또한 프로세스에 모니터링 중인 파일에 대한 파일 설명자 외에 다른 파일 설명자가 열려 있을 수 있으며 이러한 다른 열린 설명자도 총계에 포함됩니다. macOS는 다른 백엔드를 사용하므로 이 문제가 발생하지 않습니다.

QFileQDir참조하세요 .

멤버 함수 문서

QFileSystemWatcher::QFileSystemWatcher(QObject *parent = nullptr)

주어진 parent 으로 새 파일 시스템 감시자 객체를 생성합니다.

QFileSystemWatcher::QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr)

지정된 paths 목록을 모니터링하는 parent 으로 새 파일 시스템 감시자 객체를 생성합니다.

[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()도 참조하세요 .

© 2025 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.