im 真的对 Windows Phone 8 上的某些存储功能感到困惑。我正在尝试将多个应用程序共享的凭据(密码/用户)保存在本地手机存储中。从那里,用户将只能在一个应用程序中更改一次密码,并且它将为所有应用程序更改密码。我经历了3种可能性
- 保存在外部服务器上
- 将媒体库另存为图片
- 保存在管理凭据的新特定应用程序的隔离存储上
在公开第二种情况的代码中,我遇到问题"系统无效操作异常.发生了意外错误"
public static void SaveToFile(byte[] Encryptedfile, string FileName)
{
using (var mediaLibrary = new MediaLibrary())
{
using (var stream = new MemoryStream(Encryptedfile))
{
var file = string.Format(FileName, Guid.NewGuid());
stream.Seek(0, SeekOrigin.Begin);
var picture = mediaLibrary.SavePicture(file, stream); //ERROR
}
}
}
函数的调用
byte[] PasswordByte = Encoding.UTF8.GetBytes(password);
byte[] UserByte = Encoding.UTF8.GetBytes(user);
byte[] EncryptedPasswordUser = ProtectedData.Protect(PasswordByte, null);
byte[] EncryptedUser = ProtectedData.Protect(UserByte, null);
IsolatedStorageOperations.SaveToFile(EncryptedPasswordUser, "Password");
IsolatedStorageOperations.SaveToFile(EncryptedUser, "User");
如果您能给我另一种将文件保存在 WP8 上的公共本地存储中的方法,或者如果您能为我提供媒体库问题的解决方案,我将很高兴。
谢谢
使用 WriteableBitmap 将图像保存在媒体库中。愿这会帮助你
public static void SaveToFile(byte[] Encryptedfile, string FileName)
{
using (var stream = new MemoryStream(Encryptedfile))
{
var file = string.Format(FileName, Guid.NewGuid());
WriteableBitmap bitmap = new WriteableBitmap(100,100);
bitmap.SaveJpeg(stream, bitmap.PixelWidth, bitmap.PixelHeight, 0, 100);
stream.Seek(0, SeekOrigin.Begin);
using (MediaLibrary mediaLibrary = new MediaLibrary())
mediaLibrary.SavePicture(file , stream);
MessageBox.Show("Image saved");
}
}