Retrieving multiple image from isolated storage
I am saving image into isolated storage each image have a different imageFileName. But i am having problem to retrieve all the saved image in a listbox. Only managed to retrieve the latest image saved. When i hard code the filepath then can retrieve it. I hope anyoen can help me with the code.. Hopefully anyone can try editing my code. Thanks.
Save code:
private void SaveToLocalStorage(string imageFolder, string imageFileName)
{
imageFileName = App.imagePath;
var isf = IsolatedStorageFile.GetUserStoreForApplication();
if (!isf.DirectoryExists(imageFolder))
{
isf.CreateDirectory(imageFolder);
}
string filePath = Pa开发者_如何学JAVAth.Combine(imageFolder, imageFileName);
using (var stream = isf.CreateFile(filePath))
{
var bmp = new WriteableBitmap(inkCanvas, inkCanvas.RenderTransform);
bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 100);
}
MessageBox.Show(filePath }
Retrieve code:
private void LoadFromLocalStorage(string imageFolder, string imageFileName )
{
var isoFile = IsolatedStorageFile.GetUserStoreForApplication();
if (!isoFile.DirectoryExists(imageFolder))
{
isoFile.CreateDirectory(imageFolder);
}
string filePath = Path.Combine(imageFolder, imageFileName);
using (var imageStream = isoFile.OpenFile(filePath, FileMode.Open, FileAccess.Read))
{
var imageSource = PictureDecoder.DecodeJpeg(imageStream);
BitmapImage bi = new BitmapImage();
ListBoxItem item = new ListBoxItem();
bi.SetSource(imageStream);
item.Content = new Image() { Source = bi, MaxHeight = 100, MaxWidth = 100 };
listBox1.Items.Add(item);
}
}
Try something like:
private void LoadFromLocalStorage(string imageFolder) { var isoFile = IsolatedStorageFile.GetUserStoreForApplication(); // Check if directory exists if(!isoFile.DirectoryExists(imageFolder)) { throw new Exception("Image directory not found"); } // Clear listbox listBox1.Items.Clear(); // Get files foreach(string fileName in isoFile.GetFileNames()) { string filePath = Path.Combine(imageFolder, fileName); using(var imageStream = isoFile.OpenFile(filePath, FileMode.Open, FileAccess.Read)) { var imageSource = PictureDecoder.DecodeJpeg(imageStream); BitmapImage bi = new BitmapImage(); ListBoxItem item = new ListBoxItem(); bi.SetSource(imageStream); item.Content = new Image() { Source = bi, MaxHeight = 100, MaxWidth = 100 }; listBox1.Items.Add(item); } } }
Hard to say without seeing more of your code, but it looks like you're only retrieving one file. Elsewhere in your code are you getting a list of all of the files that should be in the IsolateStorage directory and looping through them? Are you seeing any error messages, or is it just failing silently?
精彩评论