将图像文件保存到隔离存储时,GetResourceStream会中途返回null

时间:2013-01-30 17:44:47

标签: c# image null windows-phone-8 isolatedstorage

我正在尝试使用以下代码将XAP中的多个图像文件保存到隔离存储中。我打算保存大约100个文件。问题是这一行

sri = Application.GetResourceStream(uri) 

中途返回null。模拟器可以保存的文件数量是否有限制?或者可能是我错过了什么......

    private static void SaveImageFileToIsoStore()
    {

        string[] files = AllFilesInImagesCatFolder();

        using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (!isoStore.FileExists(files[0]))
            {
                foreach (string f in files)
                {
                    IsolatedStorageFileStream fileStream = isoStore.CreateFile(f);
                    StreamResourceInfo sri = null;
                    Uri uri = new Uri("Images/cat/" + f, UriKind.Relative);
                    Debug.WriteLine(f);
                    sri = Application.GetResourceStream(uri);

                    BitmapImage bitmap = new BitmapImage();
                    bitmap.SetSource(sri.Stream);
                    WriteableBitmap wb = new WriteableBitmap(bitmap);

                    // Encode WriteableBitmap object to a JPEG stream.
                    Extensions.SaveJpeg(wb, fileStream, wb.PixelWidth, wb.PixelHeight, 0, 100);

                    fileStream.Close();
                    fileStream.Dispose();

                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了。其中两个文件有png和jpeg扩展名。代码只期望jpg扩展,因此在遇到这些扩展时返回null。