我将图像保存到独立存储中,每个图像都有不同的imageFileName。但我有问题检索列表框中的所有已保存的图像。 只设法检索保存的最新图像。 当我硬编码文件路径然后可以检索它。 我希望任何人都能帮我解决这些问题。希望任何人都可以尝试编辑我的代码。感谢。
保存代码:
private void SaveToLocalStorage(string imageFolder, string imageFileName)
{
imageFileName = App.imagePath;
var isf = IsolatedStorageFile.GetUserStoreForApplication();
if (!isf.DirectoryExists(imageFolder))
{
isf.CreateDirectory(imageFolder);
}
string filePath = Path.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 }
检索代码:
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);
}
}
答案 0 :(得分:4)
尝试类似:
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); } } }
答案 1 :(得分:0)
很难说没有看到更多的代码,但看起来你只是检索一个文件。在代码的其他地方,您是否获得了应该在IsolateStorage目录中并循环遍历它们的所有文件的列表?您是否看到任何错误消息,或者它是否只是默默地失败?