Silverlight SaveFileDialog.SelectedFile?
-
27-09-2019 - |
Question
Je travaille dans Silverlight sur une boîte de dialogue de gestion des exceptions. Quand une exception est levée, la boîte de dialogue apparaît avec des détails sur l'erreur, et un bouton qui permet à l'utilisateur d'enregistrer le journal des erreurs et l'envoyer au développeur. Lorsque l'utilisateur clique sur le bouton Save Error Log
, un SaveFileDialog
apparaît et permet à l'utilisateur de naviguer là où (s) qu'il veut enregistrer le fichier.
Comment puis-je obtenir le chemin complet (par exemple C:\Folder\logfile.log
) du fichier sélectionné? La propriété SafeFileName
ne me donne que le nom du fichier (par exemple logfile.log
).
La solution
Vous ne pouvez pas obtenir le chemin complet dans une application SL en raison d'être sandbox. Vous pouvez le faire toutefois dans WPF puisque vous avez un accès complet à ce moment-là.
Cela ne signifie pas que vous ne pouvez pas enregistrer le fichier à l'emplacement donné par le Stream
exposé bien. Exemple complet .
try
{
byte[] fileBytes = e.Result as byte[];
using ( Stream fs = (Stream)this.dialog.OpenFile() )
{
fs.Write( fileBytes, 0, fileBytes.Length );
fs.Close();
this.tblError.Text = "File successfully saved!";
}
}
catch ( Exception ex )
{
this.tblError.Text = "Error getting result: " + ex.Message;
}