2016-08-08 10 views
-1

Es scheint einfach, aber es funktioniert nicht. Ich habe einen USB-Computer installiert.QT QFileSystemWatcher

#Watch the media directory and connect to enable save csv pb 
self.usb_watcher = QFileSystemWatcher() 
self.usb_watcher.addPaths(["/media/usb0"]) 
self.usb_watcher.directoryChanged.connect(self.enable_save_csv_pb) 
self.usb_watcher.fileChanged.connect(self.enable_save_csv_pb) 

Ich denke, es hat mit Addpath zu tun. Wenn ich die eckigen Klammern nicht einreiße bekomme ich folgende Fehlermeldung:

Aber ich habe Beispiele ohne die eckigen Klammern gesehen.

+0

verwenden sollten Was passiert, wenn Sie 'addPaths' zu' addPath' ändern? –

+0

Das Gleiche. Nichts, wenn ich den USB einstecke. Aber addPath ohne die s ist richtig. Ich habe einen Schrägstrich versucht, aber das hat nicht funktioniert. Sind Berechtigungen für die Überwachung wichtig? – dpetican

+0

@ dpetican. Sie sollten in Ihrer Frage genau angeben, was Sie tun, um diesen Code zu testen. Vermutlich machen Sie Änderungen im Dateisystem und erwarten Signale zu empfangen. Haben Sie den gleichen Code mit Pfaden auf anderen Festplatten versucht? – ekhumoro

Antwort

0

Ich glaube, Sie addPath statt addPaths

+0

Ich denke, ich wurde den sprichwörtlichen Weg hinunter geführt. Korrigiere mich, wenn ich falsch liege, aber QFileSystemWatcher überwacht das Verzeichnis selbst NICHT den Inhalt des Verzeichnisses, was ich möchte. Da die Mountpunkte (Verzeichnisse) bereits existieren, ändert sich natürlich der überwachte Pfad nicht. Wie überwache ich ein Verzeichnis für hinzugefügte oder entfernte Dateien? – dpetican

+0

@ dpetican. Sie können etwas nicht überwachen, das nicht existiert. Alles, was Sie tun können, ist, einen vorhandenen Ort zu überwachen, an dem er erstellt werden könnte - d. H. Sein eventuelles Elternverzeichnis. Das Hinzufügen oder Entfernen von Dateien wird daher sehr oft als Änderung eines Verzeichnisses angesehen: siehe [Dokumentation für das directoryChanged-Signal] (http://doc.qt.io/qt-5/qfilesystemwatcher.html#directoryChanged). – ekhumoro

+0

Ja, ich lese bereits die Docs und QFileSystemWatcher sollte tun, was ich tun soll. Oder sollte es? Lass uns klar sein, das ist was ich will: 1) QFileSystemWatcher wacht/media/usb0, die anfänglich keine Dateien darin hat 2) usbautomount erkennt ein USB-Laufwerk und hängt es an/media/usb0; Es gibt jetzt Dateien im Verzeichnis Aber hier ist der Haken "sind Dateien jetzt im Verzeichnis" die gleichen wie Dateien, die zum Verzeichnis hinzugefügt wurden? – dpetican

Verwandte Themen