[Silverlight] Astuce du jour #07 - La boite de dialogue OpenFileDialog
Silverlight 2 nous permet de sélectionner un fichier sur le poste client, via la boite de dialogue OpenFileDialog.
Cette dernière nous permet d'obtenir entre autre un Stream sur le fichier sélectionné par l'utilisateur, afin de le lire ou de l'uploader sur un serveur.
Comment faire ?
OpenFileDialog openFile = new OpenFileDialog();
openFile.Multiselect = false;
openFile.Filter = "Images files (*.jpg,*.png)|*.jpg;*.png";
if (openFile.ShowDialog() == true)
{
Stream stream = openFile.SelectedFile.OpenRead();
using (StreamReader reader = new StreamReader(stream))
{
// What you want !
}
}
On remarque tout d'abord la propriété Multiselect qui nous permet de sélectionner ou pas plusieurs fichiers.
Ensuite la propriété Filter qui nous permet d'appliquer un filtre sur le type de fichier sélectionnable par l'utilisateur. Ici on réduit la sélection aux fichier images jpg et png.
Pour récupérer le fichier sélectionné par l'utilisateur on se sert de la propriété SelectedFile qui nous retourne un objet de type FileDialogFileInfo.
Cet objet contient une méthode OpenRead retournant un Reader sur le fichier. Il contient également une propriété Name retournant le nom du fichier et une méthode OpenText (utile pour les fichiers texte).
On se sert ensuite du Reader obtenu pour créer un StreamReader afin de lire notre fichier.
Remarque : Dans le cas d'une sélection multiple, il faut utiliser la propriété SelectedFiles qui retourne un IEnumerable<FileDialogFileInfo>.
C'est tout pour l'utilisation de la boite de dialogue OpenFileDialog en Silverlight 2.
A bientôt pour une nouvelle astuce sur Silverlight.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :