限制SYSTEM-DIALOG GET-FILE中的目录浏览

时间:2017-07-17 19:25:28

标签: openedge progress-4gl

My Progress 11.6应用程序正在使用SYSTEM-DIALOG GET-FILE命令允许用户选择文件:

DEFINE VARIABLE cFilename AS CHARACTER NO-UNDO.
DEFINE VARIABLE lResult AS LOGICAL NO-UNDO.

SYSTEM-DIALOG GET-FILE 
    cFilename
    FILTERS "Text Files (*.txt)" "*.txt",
            "All Files (*.*)" "*.*"
    DEFAULT-EXTENSION ".txt"
    MUST-EXIST
    RETURN-TO-START-DIR
    TITLE "Select File"
    USE-FILENAME
    UPDATE lResult.

问题是用户可以导航到Windows文件系统中的任何位置。有没有办法限制导航,也许只让他们进入启动目录但不是超出?

2 个答案:

答案 0 :(得分:2)

system-dialog使用OS对话框。应在OS上设置安全性。 通过在操作系统级别执行此操作,安全性适用于用户有权访问的所有应用程序。

如果您的应用程序需要某个目录中的文件,则应在对话框返回后验证lResult。

答案 1 :(得分:1)

系统对话框(及其选项get-file或get-dir)在文档中没有提及安全性。在这种情况下,我认为您必须通过操作系统权限限制访问权限或编写自己的权限。