0

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

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

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

4

2 回答 2

3

GIO是您应该在这里使用的。它由 GTK 所基于的 GLib 提供。不要使用轮询来执行此操作。轮询通常很慢、消耗资源(CPU、电源——因为它可以防止 CPU 进入深度睡眠模式)并且对异步 API 没有任何好处,后者只会在内容发生更改时通知您。另请参阅PyGTK/GIO:递归监控目录更改

您以这种方式导入它: from gi.repository import Gio

顺便说一句,我正在删除问题的 PyGTK 标记,因为 PyGTK(应该用于 GTK 2)已经过时,取而代之的是PyGObject(应该用于 GTK3)。

编辑:

这是python + GTK3 教程的链接。

于 2012-10-30T10:31:05.383 回答
-1

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

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

看看这个作为一个例子,或者这个更多。

看到这个了吗?

这些链接是从简单的 Google 和 Stackoverflow 搜索中收集到的。如果他们没有为您提供足够的信息,请根据您的要求更新您的问题

于 2012-10-30T06:06:06.880 回答