Python:如何使用GUI选择文件,但防止浏览其他目录?
我想让用户从特定目录中删除文件。因此,我使用:Python:如何使用GUI选择文件,但防止浏览其他目录?,python,file,user-interface,browser,Python,File,User Interface,Browser,我想让用户从特定目录中删除文件。因此,我使用: from Tkinter import Tk from tkFileDialog import askopenfilename Tk().withdraw() filename = askopenfilename() 它打开一个文件浏览器,用户选择一个文件。但用户可以在此GUI窗口中浏览到其他目录 我想阻止用户浏览到其他目录,这样他/她就不能从其他文件夹中删除文件。应该只允许用户从该起始目录中选择文件 如何做到这一点?我认为标准文件对话框不可能
from Tkinter import Tk
from tkFileDialog import askopenfilename
Tk().withdraw()
filename = askopenfilename()
它打开一个文件浏览器,用户选择一个文件。但用户可以在此GUI窗口中浏览到其他目录
我想阻止用户浏览到其他目录,这样他/她就不能从其他文件夹中删除文件。应该只允许用户从该起始目录中选择文件
如何做到这一点?我认为标准文件对话框不可能做到这一点。但是你可以自己写。只需使用treeview小部件显示目录中的所有文件(和相关信息)。用户可以多选文件,您可以在用户取消对话框后删除它们。我认为您将无法通过将标准对话框子类化来实现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
在Linux下,您可以查看
os.chroot