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?

¿Fue útil?

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 /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top