OpenFileDialog
Assembly PresentationFramework.dll, namespace Microsoft.Win32
|
var ofd = new OpenFileDialog()
{
Multiselect = true,
RestoreDirectory = true,
Filter = "Excel documents|*.xls;*.xlsx|All Files|*.*"
};
if (ofd.ShowDialog() == true) { var selectedFile = ofd.FileName; }
|
|
Si InitialDirectory n'est pas renseigné, c'est le répertoire du dernier fichier ouvert qui est utilisé. |
FolderBrowserDialog
Assembly System.Windows.Forms.dll, namespace System.Windows.Forms
|
var fbd = new FolderBrowserDialog()
{
Description = "Select a directory.",
ShowNewFolderButton = false,
// il faut choisir entre RootFolder etSelectedPath
RootFolder = Environment.SpecialFolder.Personal,
SelectedPath = @"chemin vers un dossier"
};
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var path = fbd.SelectedPath;
}
|
|
Le dernier dossier utilisé n'est pas sauvegardé.
Utiliser les Settings pour avoir ce comportement. |
CommonOpenFileDialog - Windows API Code Pack
Installer via Nuget le Windows API Code Pack Shell.
|
var dlg = new CommonOpenFileDialog();
dlg.Title = "My Title";
dlg.IsFolderPicker = true;
// force un chemin
dlg.InitialDirectory = @"C:\";
// Utilise le précédent chemin ouvert, s'il n'y en a pas utilise DefaultDirectory
dlg.DefaultDirectory = @"C:\Mon\Chemin";
if (dlg.ShowDialog() == CommonFileDialogResult.Ok)
{
var folder = dlg.FileName;
}
|
|
Ne marche peut être pas sous XP. Nécessite .NET 4.0 ? |
|
Ne semble plus être maintenu par Microsoft. |
VistaFolderBrowserDialog
|
var fbd = new VistaFolderBrowserDialog()
{
SelectedPath = @"C:\Chemin",
Description = "Description",
ShowNewFolderButton = false
}
if (fbd.ShowDialog(this) == true && Directory.Exists(fbd.SelectedPath))
{ }
|
Assemlies Microsoft.WindowsAPICodePack.dll et Microsoft.WindowsAPICodePack.Shell.dll
|
var dlg = new CommonOpenFileDialog();
dlg.Title = "My Title";
dlg.IsFolderPicker = true;
dlg.InitialDirectory = "D:\\";
dlg.AddToMostRecentlyUsedList = false;
dlg.AllowNonFileSystemItems = false;
dlg.DefaultDirectory = "D:\\";
dlg.EnsureFileExists = true;
dlg.EnsurePathExists = true;
dlg.EnsureReadOnly = false;
dlg.EnsureValidNames = true;
dlg.Multiselect = false;
dlg.ShowPlacesList = true;
if (dlg.ShowDialog() == CommonFileDialogResult.Ok)
{
var folder = dlg.FileName;
}
|
|
Ne semble plus être maintenu par Microsoft. |