簡単な説明
QFileSystemWatcher クラスは、ファイルとディレクトリの変更を監視するためのインターフェイスを提供するために使用されます。
QFileSystemWatcher は、指定されたパスのリストを監視することによって、ファイル システム内のファイルとディレクトリへの変更を監視します。
addPath() 関数を呼び出して、特定のファイルまたはディレクトリを監視します。複数のパスを監視する必要がある場合は、addPaths() を使用できます。既存のパスを削除するには、removePath() 関数とremovePaths() 関数を使用します。
QFileSystemWatcher は、それに追加されたすべてのパスをチェックします。QFileSystemWatcher に追加されたファイルには、files() 関数を使用してアクセスでき、ディレクトリには、directorys() 関数を使用してアクセスできます。
fileChanged() シグナルは、ファイルが変更、名前変更、またはディスクから削除されたときに発行されます。同様に、ディレクトリまたはその内容が変更または削除されると、directoryChanged() シグナルが発行されます。注: ファイルの名前が変更されるか、ハードディスクから削除され、ディレクトリがディスクから削除されると、QFileSystemWatcher は監視を停止します。
注: ファイルとディレクトリの変更を監視すると、システム リソースが消費されます。これは、プロセスが同時に監視できるファイルの数に制限があることを意味します。一部のシステムでは、オープン ファイル記述子の数がデフォルトで 256 に制限されています。つまり、プロセスが addPath() および addPaths() 関数を使用して 256 を超えるファイルまたはディレクトリをファイル システムに追加しようとすると、失敗します。
| 著作権に関する声明: One Go, Two Three Miles は、ブロガーの許可なしに複製することはできません。
Public function
bool addPath(const QString & path)
パスが存在する場合はファイルシステム監視に追加されますが、パスが存在しない、または既に監視されている場合は追加されません。
パスがディレクトリの場合、内容が変更または削除されたときに directoryChanged() シグナルが発行され、それ以外の場合、ファイルが変更、名前変更、またはディスクから削除されたときに fileChanged() シグナルが発行されます。
監視が成功した場合は true を返し、そうでない場合は false を返します。
監視失敗の理由は通常システムによって異なりますが、リソースの存在なし、アクセスの失敗、または総監視量の制限が含まれる場合もあります。
QStringList addPaths(const QStringList & paths) は、
各パスをファイル システム監視に追加します。パスが存在しないか、すでに監視されている場合は追加されません。
戻り値は監視できないパスのリストです。
QStringList directorys() const は、
監視対象のディレクトリ パスのリストを返します。
QStringList files() const は、
監視対象のファイル パスのリストを返します。
bool RemovePath(const QString & path)
ファイル システム監視から指定されたパスを削除します。モニターが正常に削除された場合は true を返します。
削除が失敗する理由は通常システムに関連していますが、パスが削除されたことが原因である場合もあります。
QStringList replacePaths(const QStringList & paths)
ファイル システム モニターから指定されたパスを削除します。戻り値は、正常に削除できなかったパスのリストです。
シグナル
void directoryChanged(const QString & path)
このシグナルは、ディレクトリが変更されたとき (例: 指定されたパスでのファイルの追加または削除)、またはディスクから削除されたときに発行されます。注: 短期間に複数の変更があった場合、一部の変更はこのシグナルを送信しない可能性があります。ただし、一連の変更の最後の変更は常にこのシグナルを発信します。
注: これは信号接続で使用できるプライベート信号ですが、ユーザーが発信することはできません。
void fileChanged(const QString & path)
このシグナルは、指定されたパス内のファイルが変更、名前変更、またはディスクから削除されたときに発行されます。
注: これは信号接続で使用できるプライベート信号ですが、ユーザーが発信することはできません。
例については原文を参照してください:
—————————————
著作権表示: この記事は CSDN ブロガー「一去丶二三里」によるオリジナル記事であり、CC に従って複製されています。 4.0 BY-SA 著作権契約。元の情報源とこの声明へのリンクを添付してください。
元のリンク: https://blog.csdn.net/liang19890820/article/details/51849252