Папка Browser Dialog Начальная папка - PullRequest
0 голосов
/ 19 февраля 2020

Я искал и открывал диалог папки (wpf). Я получаю диалоги Ookii для wpf и использую VistaFolderBrowserDialog. (Мне не нравится FolderBrowserDialog Windows Forms).

Я сохраняю «последнюю открытую папку». Поэтому в следующий раз, когда пользователь откроет этот VistaFolderBrowserDialog, исходная папка будет «последней», которую я сохранил.

...
//Save the new actual folder
MyProject.ProgramConfigurationFile.Instance.OpenFolderPath = System.IO.Path.GetDirectoryName(folderDialog.SelectedPath);

VistaFolderBrowserDialog имеет свойство => RootFolder:

publi c Environment. . :: .. SpecialFolder RootFolder {get; набор; } Но это тип SpecialFolder.

Поэтому я ищу способ установить мой String OpenFolderPath в свойство RootFolder.

VistaFolderBrowserDialog folderDialog = new VistaFolderBrowserDialog();
folderDialog.Description = "Please select the folder";
folderDialog.UseDescriptionForTitle = true;
if ((bool)folderDialog.ShowDialog(this))
{
     //Get the last open folder saved (if exist).
     if(!String.IsNullOrEmpty(MyProject.ProgramConfigurationFile.Instance.OpenFolderPath))
     {
         folderDialog.RootFolder = Environment.SpecialFolder. //I would like to set OpenFolderPath
     }  
}

Также приветствуются другие средства просмотра папок.

Большое спасибо.

1 Ответ

0 голосов
/ 19 февраля 2020

До этого момента я не знал диалогов Ookii, но после небольшого поиска и знания того, как работает обычный диалог открытия папок, я предлагаю установить для lastOpenFolder свойство SelectedPath

folderDialog.SelectedPath = MyProject.ProgramConfigurationFile.Instance.OpenFolderPath;

Но это должно быть сделано перед folderDialog.ShowDialog(this) показом диалогового окна.

Так что это должно выглядеть примерно так:

VistaFolderBrowserDialog folderDialog = new VistaFolderBrowserDialog();
folderDialog.Description = "Please select the folder";
folderDialog.UseDescriptionForTitle = true;

if(!string.IsNullOrEmpty(MyProject.ProgramConfigurationFile.Instance.OpenFolderPath))
    folderDialog.SelectedPath = myProject.ProgramConfigurationFile.Instance.OpenFolderPath;

if ((bool)folderDialog.ShowDialog(this))
{
    string newSelectedFolderPath = folderDialog.SelectedPath;
    // Use new folderPath
}

Дайте мне знать, если это решит это.

Надеюсь, я был полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...