2013-07-25 24 views
0

我想让用户从特定的目录中删除文件。因此我使用:Python:如何用GUI选择文件,但是阻止浏览到其他目录?

from Tkinter import Tk 
from tkFileDialog import askopenfilename 

Tk().withdraw() 
filename = askopenfilename() 

它打开文件浏览器并且用户选择文件。但用户可以在此GUI窗口中浏览其他目录。

我想阻止用户浏览到其他目录,这样他/她将无法从其他文件夹中删除文件。用户只能被允许从该起始目录中选择文件。

如何做到这一点?

+0

在Linux下,您可以看看'os.chroot' – nims

回答

1

我不认为这是可能的标准文件对话框。但你可以自己写。只需使用treeview小部件即可显示目录中的所有文件(和相关信息)。用户可以多选择这些文件,并且可以在用户关闭对话框后将其删除。

0

我想你会被卡在继承UI方法的标准对话框中。但是,对于快速和肮脏的应该可以在循环中使用askopenfilename()。沿着以下几点:

while True: 
    filename = askopenfilename() 
    if not filename: 
     raise FileDeleteAbortError() 
    if os.path.dirname(filename) == expected_directory: 
     break 
    tkMessageBox.showwarning() # pick another file, this one's in the wrong directory 
相关问题