2017-07-17 1 views
1

Mon progrès demande 11.6 utilise la commande GET FILE SYSTEM-DIALOG pour permettre à l'utilisateur de sélectionner un fichier:Limitation de la navigation du répertoire dans SYSTEM-DIALOG GET-FICHIER

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. 

Le problème est que les utilisateurs peuvent naviguer à n'importe où dans le système de fichiers Windows. Existe-t-il un moyen de limiter la navigation, en les laissant simplement aller jusqu'au répertoire de démarrage, mais pas au-delà?

Répondre

1

La boîte de dialogue système (et leurs options get-file ou get-dir) ne sont pas mentionnées en ce qui concerne la sécurité dans la documentation. Je crois que vous devez limiter l'accès via les permissions du système d'exploitation ou écrire les vôtres, dans ce cas. La boîte de dialogue système utilise les boîtes de dialogue du système d'exploitation.

2

La définition de la sécurité doit être effectuée sur le système d'exploitation. En faisant cela au niveau du système d'exploitation, la sécurité s'applique à toutes les applications auxquelles l'utilisateur a accès.

Si votre application a besoin d'un fichier provenant d'un certain répertoire, vous devez valider lResult après le retour de la boîte de dialogue.