No se puede crear una carpeta y mostrar la imagen usando el emulador WP7
-
09-12-2019 - |
Pregunta
Soy nuevo en el desarrollo de WP7 intentando con un ejemplo simple, es decir, ...
Tengo un control de imagen y 2 botones, uno es para cargar la imagen y mostrarlo en el control de imágenes y el otro es para guardar esa imagen en una nueva carpeta que necesito crear.
Tengo el siguiente código y no estoy obteniendo ningún error, pero el problema es que no puedo crear el directorio y guardar la imagen existida en esa carpeta.
No puedo ver el directorio, así como la imagen después de guardarla.
¿Podemos ver la carpeta en el emulador (o), solo es posible que podamos ver el directorio creado en el teléfono de Windows?
Imports System.IO
Imports Microsoft.Phone.Tasks
Imports System.IO.IsolatedStorage
Imports System.Windows.Media.Imaging
Partial Public Class Page1
Inherits PhoneApplicationPage
Public Sub New()
InitializeComponent()
photoChooserTask = New PhotoChooserTask()
AddHandler photoChooserTask.Completed, AddressOf photoChooserTask_Completed
End Sub
Dim photoChooserTask As PhotoChooserTask
Private Sub photoChooserTask_Completed(sender As Object, e As PhotoResult)
Dim bmp As System.Windows.Media.Imaging.BitmapImage = New System.Windows.Media.Imaging.BitmapImage()
bmp.SetSource(e.ChosenPhoto)
Image1.Source = bmp
Dim originalFilename = Path.GetFileName(e.OriginalFileName)
SaveImage(e.ChosenPhoto, originalFilename, 0, 100)
End Sub
Public Shared Sub SaveImage(ByVal imageStream As Stream, ByVal fileName As String, ByVal orientation As Integer, ByVal quality As Integer)
Using isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()
If isolatedStorage.FileExists("NewPics\fileName") Then
isolatedStorage.DeleteFile("NewPics\fileName")
End If
If Not isolatedStorage.DirectoryExists("NewPics") Then
isolatedStorage.CreateDirectory("NewPics")
End If
'isolatedStorage.CreateDirectory("NewPics")
'Dim fileStream As New IsolatedStorageFileStream("fileName", FileMode.Create, isolatedStorage)
Dim fileStream = isolatedStorage.CreateFile("NewPics\" + fileName)
Dim bitmap = New BitmapImage()
bitmap.SetSource(imageStream)
Dim wb = New WriteableBitmap(bitmap)
wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, orientation, quality)
fileStream.Close()
End Using
End Sub
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
Try
photoChooserTask.Show()
Catch ex As System.InvalidOperationException
MessageBox.Show("An error occurred.")
End Try
End Sub
End Class
¿Puede alguien decirme donde estoy cometiendo error?
Solución
El código es perfecto, el problema es que Silverlight utiliza "almacenamiento aislado" para almacenar archivos, que es, como su nombre lo indica, un almacenamiento completamente aislado.Un archivo o directorio creado por su solicitud será accesible solo desde su solicitud.
Creo que el emulador está almacenando los archivos de almacenamiento aislados solo en la memoria, ya que no tiene que mantenerlos después de un reinicio.Si desea ver fácilmente dentro del almacenamiento aislado de su aplicación, podría usar una herramienta como WP7 Explorer: http://wp7eplorer.codeplex.com /