J'essaie de trouver un moyen de réinitialiser le répertoire initial/par défaut après la fermeture d'un OpenFileDialog. Prenons l'exemple suivant:OpenFileDialog - Comment empêcher l'écrasement du répertoire par défaut?
using (OpenFileDialog openFile = new OpenFileDialog())
{
// Example: This opens in the 'Desktop' directory
// User navigates to 'Documents' directory in the Form before selecting a file
DialogResult result = openFile.ShowDialog();
if (result == DialogResult.OK) MessageBox.Show(openFile.FileName);
}
// Somewhere else, this code then runs
using (OpenFileDialog openFile = new OpenFileDialog())
{
// Problem: This now opens in 'Documents' directory. Not good!
// How to open using the same default directory (ie: Desktop)?
DialogResult result = openFile.ShowDialog();
if (result == DialogResult.OK) MessageBox.Show(openFile.FileName);
}
Pour être clair, le « Bureau » est juste un exemple, je sais pas en fait le répertoire initial comme il est stocké dans le registre (si je comprends bien).
J'ai essayé d'utiliser l'option RestoreDirectory. Cela ne semblait pas avoir d'effet. D'après ce que j'ai lu ailleurs, il est supposé réinitialiser le répertoire Environment.CurrentDirectory à sa valeur d'origine, ce qui semble raisonnable. Cependant, je ne pense pas qu'OpenFileDialog utilise même Environment.CurrentDirectory puisque la valeur n'est jamais changée, et ne correspond jamais à ce qu'ouvre OpenFileDialog (sauf si je navigue manuellement dessus).
Y at-il quelque chose que je pourrais manquer ici? Est-ce que quelqu'un sait comment arrêter d'écraser selon la variable de répertoire utilisée par défaut par OpenFileDialog?
'openFile.InitialDirectory = yourPath;' – LarsTech
@LarsTech J'ai spécifiquement mentionné dans mon article que je n'ai pas de répertoire initial. – AnotherProgrammer
Ce n'est pas clair pour moi quel répertoire vous voulez ouvrir. Si la première fois que vous utilisez la boîte de dialogue contient le répertoire que vous souhaitez ouvrir, stockez-le dans une variable pour la prochaine fois. – LarsTech