我想让用户从特定目录中删除文件。因此我使用:
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 窗口中浏览到其他目录。
我想阻止用户浏览到其他目录,这样他/她就无法从其他文件夹中删除文件。应该只允许用户从该起始目录中选择文件。
这该怎么做?
我认为标准文件对话框不可能做到这一点。但是你可以自己写。只需使用树视图小部件即可显示目录中的所有文件(和相关信息)。用户可以多选文件,您可以在用户关闭对话框后删除它们。
我认为你会被困在标准对话框的子类中,以使用 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