Impossibile creare cartella e visualizzare l'immagine utilizzando l'emulatore WP7
-
09-12-2019 - |
Domanda
Sono nuovo allo sviluppo del WP7 che prova con un semplice esempio IE ..
Ho un controllo immagine e 2 pulsanti uno è per il caricamento dell'immagine e visualizzarlo nel controllo dell'immagine e l'altro è per salvare quell'immagine alla nuova cartella che ho bisogno di creare.
Ho il codice sotto e non sto ottenendo errori ma il problema è che non riesco a creare la directory e salvare l'immagine esistente in quella cartella.
Non riesco a vedere la directory e l'immagine dopo averla salvata.
Possiamo vedere la cartella nell'emulatore (o) è possibile solo che possiamo vedere la directory creata sul Windows Phone?
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
.
Qualcuno può dire me dove sto facendo errore?
Soluzione
Il codice è perfetto, il problema è che Silverlight utilizza "memoria isolata" per la memorizzazione dei file, che è, come suggerisce il nome, una memoria completamente isolata.Un file o una directory creati dalla tua applicazione saranno accessibili solo dalla tua applicazione.
Penso che l'emulatore stia memorizzando i file di archiviazione isolati solo in memoria, poiché non deve tenerli dopo un riavvio.Se vuoi vedere facilmente all'interno dello storage isolato della tua applicazione è possibile utilizzare uno strumento come WP7 Explorer: http://wp7explorer.codeplex.com /