問題タブ [qfilesystemwatcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2470 参照

qt - Windows上のQtQFileSystemWatcher

次の問題があります。を作成するQFileSystemWatcherと、Linuxで正常に実行および動作しますが、Windows 7では動作しません。コード内で動作しなくなる可能性のあるものを見つけることができますか?

どうも。

これを初期化するコードは次のとおりです。

そしてこれは仕事を成し遂げるスロットであると思われます:

0 投票する
1 に答える
3003 参照

c++ - 「QFileSystemWatcher: パスの追加に失敗しました」が、まだ機能する

ファイルシステムを監視する必要があります。フォルダーとファイルを再帰的に参照し、それらのパスを QFileSystemWatcher に追加する機能があります。

実行中、すべての「watcher.addPath(iterator.filePath());」コンソールに次のエラー メッセージが表示されます。

QFileSystemWatcher: パスの追加に失敗しました: C:/.../anyfile.ext

最も奇妙なことは、それがとにかく機能することです。ファイルまたはフォルダーの名前を変更/編集すると、fileChanged および folderChanged イベントがトリガーされます。

誰が何が起こっているのか考えていますか? プログラムの不安定性が心配です。このエラーは何も表示されません。

読んで助けてくれてありがとう、

ラファエル。

0 投票する
1 に答える
2674 参照

c++ - QFileSystemWatcher::addPath を再帰的に

QFileSystemWatcherこんにちは、特定のディレクトリとそのサブディレクトリの変更を再帰的に監視するために使用したいのですが、void QFileSystemWatcher::addPath ( const QString & path )それをさせてくれなかったので、簡単に実行するアイデアはありますか、それとも自分で実装する必要があります (すべてのディレクトリとサブディレクトリを抽出し、に追加された下のファイルvoid QFileSystemWatcher::addPaths ( const QStringList & paths ))?

どんな助けでも大歓迎です。

前もって感謝します。

0 投票する
1 に答える
2140 参照

c++ - ファイルが開かれたことを知るには? QT

ファイルが読み取り用にユーザーによって開かれたかどうかを知りたい (ダブルクリックまたは ... で開く)、C++Windows で Qt Creator を使用してアプリケーションをコーディングしています。いくつかの調査の後、 QFileSystemWatcheを見つけましたが、特定のフォルダで変更が発生しました。

void QFileSystemWatcher::fileChanged ( const QString & path ) [signal] このシグナルは、指定されたパスにあるファイルが変更、名前変更、またはディスクから削除されたときに発行されます。

ファイルが開かれたかどうかを知る方法は? または、開いたり閉じたりするときにファイルを変更する方法はありますか?

任意のアイデアをお願いします!!!

0 投票する
1 に答える
3714 参照

c++ - QFileSystemWatcher:削除および追加されたファイルを検出しますが、変更されたファイルは検出しません

Qt を使用して Windows でアプリを開発していますが、特定のフォルダーの変更を検出する必要があります。そこで、QFileSystemWatcher を使用し、変更があった場合にメッセージを送信する関数に directoryChanged シグナルを接続しました。

問題は、ファイルの内容を変更した場合に directoryChanged に接続された「スロット」関数が呼び出されず、ファイルまたはディレクトリが削除または追加された場合にのみ呼び出されることです。

ただし、ドキュメントによると、このシグナルは「指定されたパスのディレクトリが変更されたとき (たとえば、ファイルが追加、変更、または削除されたとき)、またはディスクから削除されたとき」に送信されます。

誰か説明がありますか?よろしくお願いします=)

0 投票する
2 に答える
4774 参照

python - QFileSystemWatcherがディレクトリに対して機能するのにPythonのファイルに対しては機能しないのはなぜですか?

私は別のStackOverflowの答えからこのコードを借りました:

問題は、file_changed何があっても呼び出されないことです。directory_changedたとえば、ファイルが追加されたときに確実に呼び出されますが、ファイルの内容を変更してもfile_changedが呼び出されることはありません。

QtCore.SIGNAL('fileChanged(QString)')私は、例えば、QtCore.SIGNAL('fileChanged(const QString &)')無駄に、のいくつかのバリエーションを呼び出しました。警告やエラーはありません-単に関数をトリガーしません。

推奨事項?

0 投票する
1 に答える
1596 参照

c++ - C++ Qt 5.0.2 Windows 上の QFileSystemWatcher でディレクトリの変更が表示されない

Windows で Qt 5.0.2 の QFileSystemWatcher に問題があります。

test.cpp

DirectoryWatcher.cpp

私が直面している問題は、ファイルを「C:/data/watch」フォルダーに作成/移動/編集しているときでも、関数「showModified」または「showChanged」が呼び出されないことです。彼らは持っている

パラメータとして使用されるスロットの名前を存在しないものに変更すると、エラーが発生するため、スロットの名前は正しいと確信しています。

また、パスとして追加しているディレクトリが存在することも確信しています。

ディレクトリを取得します:

ドキュメントには次のように明確に記載されています: ( http://qt-project.org/doc/qt-5.0/qtcore/qfilesystemwatcher.html#addPath )

明らかに私は何かが欠けています。誰かが私の間違いを指摘してくれたり、私の問題を解決するための別の解決策を提供してくれたりしてくれれば幸いです。

どうぞよろしくお願いいたします。ありがとうございました。

0 投票する
1 に答える
1083 参照

c++ - C++ Qt QFileSystemWatcher ファイル アップロード double

ファイルがサーバーに 2 回アップロードされるという問題があります。

Windows XP で C++ Qt の QFileSystemWatcher クラスを使用して、フォルダーが変更されたときにファイルを送信しています。ファイルは小さい (1 ~ 12kb)。

アプリケーションは、フォルダーが変更されるたびに (directoryChanged シグナルで) フォルダーをスキャンしてファイルを送信し、ファイルをループして必要なファイルを送信します。サーバーは、別のアプリケーションが処理するために同じフォルダーに返される xml ファイルで応答します。

どうやら、一部のシステムでは、2 つの非常に高速な directoryChanged シグナルがほぼ同時に発生し、2 つの非常に高速なファイル アップロードが発生しているようです。

サーバーはApacheとPHPを実行しており、PHP側には単純なMUTEXがありますが、Qt側にあると思われる問題の根本に到達したかっただけです. 私は別のクラス、別のライブラリ、またはストレート C++ を使用することにオープンです。

ここにいくつかのコードがあります。無関係なコンテンツをすべて取り除きました。

および DirectoryWatcher.cpp:

ご協力いただきありがとうございます。

0 投票する
3 に答える
143 参照

python - [OK] を押した後にプログラムが終了する理由

ディレクトリを監視し、ファイルがユーザーによって追加されたときに警告するプログラムを作成しました。ファイルは user-name.files として特定の形式を持ち、正常に動作しますが、新しいファイルが追加されたという警告を受け取って [OK] を押すと、プログラムは終了しますが、実行し続けたいです。

私が書いた以下のコードは、そのアプリケーション内の別の PYQT アプリケーションの子プロセスとして実行されます。そのため、main() を実行するのではなく、SendMyFiles オブジェクトをインスタンス化するだけです。