10
votes

C # EnregistrerFileDialog dans un dossier spécifique

J'utilise sauvegardefiledialog code> pour sélectionner le chemin où je souhaite enregistrer un fichier. Je définit initialdirectory code> dans un dossier, mais je veux limiter les emplacements d'économie sur ce dossier ou sous-dossier de ce dossier. Est-ce possible?

SaveFileDialog dialog = new SaveFileDialog();
dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder


2 commentaires

Désolé, mais je ne peux pas penser à une affaire lorsque cela devrait être utile. Soit vous donnez à l'utilisateur le contrôle sur où enregistrer ou vous simplement enregistrer le fichier. Pourriez-vous s'il vous plaît expliquer pourquoi vous voulez faire cela?


J'ai un éditeur utilisé pour modifier des fichiers à partir d'un ensemble (il sera copié sur un périphérique tel qu'il est). Je ne veux pas laisser l'utilisateur à pouvoir enregistrer des fichiers dans d'autres dossiers - ils ne seront pas copiés à la fin et cela peut conduire à des erreurs étranges.


3 Réponses :


9
votes

Non, il n'est pas possible.

Vous ne pouvez pas définir directement cela comme une propriété sur le SaveFileDialog . Mais vous pouvez essayer de le faire en utilisant l'événement FORLEOK pour valider si le fichier est dans ce répertoire et annuler sinon l'événement! xxx

comme mentionné, la meilleure option suivante consiste à créer votre propre boîte de dialogue!


2 commentaires

Je ne veux pas annuler si l'utilisateur sélectionne le fichier à partir d'un autre dossier, je ne veux pas le laisser avoir choisi autre dossier.


Vous n'annulerez que la sélection, vous n'annulerez pas la boîte de dialogue.



0
votes

Certaines solutions qui se viennent à l'esprit sont les suivantes:

Affiche une erreur après la sélection de fichier

Pas aussi agréable que d'empêcher l'utilisateur en premier lieu, mais cela ne prend pas beaucoup de code et est assez simple.

construire votre propre écran de sélection de fichier

Très douloureux de faire ressembler à tout ce que l'utilisateur est habitué à. Prend beaucoup de code.


0 commentaires

0
votes

Ce que je peux penser pourrait être hors sujets car il n'est pas connexe autant de la programmation et cela pourrait être difficile.

Lorsque vous êtes d'application est en cours d'installation, vous devez créer un utilisateur spécifique sur Windows uniquement pour votre application.

que vous pouvez commencer votre application. comme cet utilisateur utilisant l'application. Fichier manifeste.

Après cela, vous pouvez donner à cette autorisation spécifique de l'utilisateur d'écrire uniquement dans le dossier racine, de la manière dont le système d'exploitation contrôlera cela.

PS: Je ne pense pas que si cette solution te paiera, mais cela pourrait fonctionner.

salut


0 commentaires