0

ユーザーが特定のディレクトリからファイルを削除できるようにしたいと思います。したがって、私は使用します:

from Tkinter import Tk
from tkFileDialog import askopenfilename

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

ファイル ブラウザが開き、ユーザーがファイルを選択します。ただし、ユーザーはこの GUI ウィンドウで他のディレクトリを参照できます。

ユーザーが他のディレクトリを参照できないようにして、他のフォルダーからファイルを削除できないようにしたい。ユーザーは、その開始ディレクトリからのみファイルを選択できるようにする必要があります。

これを行う方法?

4

2 に答える 2

1

これは、標準のファイル ダイアログでは不可能だと思います。しかし、あなたは自分で書くことができます。ツリービュー ウィジェットを使用して、ディレクトリ内のすべてのファイル (および関連情報) を表示するだけです。ユーザーはファイルを複数選択でき、ユーザーがダイアログを閉じた後にファイルを削除できます。

于 2013-07-25T21:26:52.403 に答える
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
于 2013-07-25T21:38:16.583 に答える