Q
監控文件的完整性
1
A
回答
1
您可以先使用QProcess運行md5sum等,然後對已更改的信號進行比較。
另一種方法是讀取或mmap中的所有文件並使用QCryptoGraphicHash創建散列。無論採用哪種方式,您都會先執行此操作,然後在信號處理程序中,一旦連接在您的QObject子類中正確創建,也會執行此操作。
#include <QObject>
#include <QFileSystemWatcher>
class MyClass : public QObject
{
Q_OBJECT
public:
explicit MyClass(QObject *parent = Q_NULLPTR)
: QObject(parent)
{
// ...
connect(m_fileSystemWatcher, SIGNAL(fileChanged(const QString&)), SLOT(checkIntegrity(const QString&)));
// ...
}
public slots:
void checkIntegrity(const QString &path)
{
// 1a. Use QProcess with an application like md5sum/sha1sum
// OR
// 1b. Use QFile with readAll() QCryptoGraphicsHash
// 2. Compare with the previous
// 3. Set the current to the new
}
private:
QFileSystemWatcher m_fileSystemWatcher;
};
聲明:這顯然不是以任何方式測試,無論如何,但我希望它能證明這個概念。
+0
缺少CheckIntegrity函數的MyClass範圍; O) – TheDarkKnight
+0
@ Merlin069:我通常會爲內聯頭文件編寫示例,因爲如果我編寫cpp,用戶往往會詢問頭文件的問題,因此它更自包含。我打算添加標題類的樣板文件,但我被召集到會議中。 :P現在會這樣做。感謝提醒,它不完整。 :) – lpapp
相關問題
- 1. Python文件完整性監控
- 2. 文件完整性檢查
- 3. 執行文件完整性
- 4. ossec選擇性監測與完整的系統監測?
- 5. 未能檢查文件的完整性
- 6. BitTorrent驗證文件的完整性?
- 7. 如何檢查文件的完整性
- 8. HTTPS協議文件的完整性
- 9. 檢查Unix/Linux的文件完整性
- 10. 驗證文件的完整性?
- 11. 使用Cityhash文件的完整性
- 12. 文件/文件夾監控
- 13. python文件監控
- 14. Webbrowser控件文檔似乎不完整
- 15. 性能監控
- 16. 監控文件的inotify
- 17. MD5文件完整性檢查
- 18. 快速文件完整性驗證
- 19. 下載文件並檢查完整性
- 20. C#FTP文件完整性檢查
- 21. ZipArchiveMode保持文件夾完整性
- 22. 軟件完整性檢查
- 23. 使用文件上傳控件獲取完整文件路徑
- 24. 完成監控javafx任務
- 25. 性能監控Openerp
- 26. 嵌入式linux的啓動和完整性監視
- 27. 監控文件更改
- 28. 監控文件上傳
- 29. 使用Java監控文件
- 30. sql server和文件監控
是的,它只會監視程序運行時的狀態,但@LaszloPapp指出,你可以得到一個散列的文件並存儲它們,然後驗證你的程序下次啓動時它們是否發生了變化。或者,創建一個服務(Windows)或守護進程(OSX/Linux),以便始終運行並監視文件。 – TheDarkKnight