跟踪文件夹中的更改

时间:2012-10-30 04:38:53

标签: python gtk gtk3 pygobject

我对编程很陌生,我尝试的第一件事就是编写自己的文件管理器(用于学习目的)。我使用python2.7和GTK + 3库。

在编写我的文件管理器时遇到问题:如何对当前文件夹文件中的更改做出反应?例如,我在文件管理器中打开了主文件夹。然后另一个程序在那里创建新文件。文件管理器应刷新文件列表并显示实际结果。我该如何实施呢?

我的文件管理员代码可在github上找到。

2 个答案:

答案 0 :(得分:3)

GIO是你应该在这里使用的。它由GTK提供的GLib提供。不要使用轮询来做到这一点。轮询通常很慢,耗费资源(CPU,电源 - 因为它可以防止CPU进入深度睡眠模式),并且对于只在内容发生变化时通知您的异步API没有任何好处。 另请参阅PyGTK/GIO: monitor directory for changes recursively

你这样导入: from gi.repository import Gio

顺便说一下,我正在删除问题的PyGTK标签,因为PyGTK(应该用于GTK 2)已经过时,而不是PyGObject(应该用于GTK3)。 / p>

修改

以下是python + GTK3 tutorial的链接。

答案 1 :(得分:-1)

每隔几秒钟检查一次目录的内容。我假设您正在使用os.listdir来获取内容?再做一些。

或者,如果效率是一个问题,请阅读:

查看this示例,或this查看更多内容。

看到this

这些链接来自简单的Google和Stackoverflow搜索。如果他们没有足够的信息,请根据您的要求更新您的问题