août
2008
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.
ah et pardon, merci pour le code qui mine de rien me sauve la vie !! ^^
comment gérer le IEnumerable svp ???
dsl si je suis une quiche ….