我正在拍照并将其保存到磁盘。图片实际上已经到了磁盘,但它没有被关闭,因为当我尝试通过在Windows资源管理器中单击它来打开它时,我收到消息:
“Windows照片查看器无法打开此图片,因为图片是 由另一个人编辑“
以下是代码,我该如何关闭流/文件?
var ui = new CameraCaptureUI();
ui.PhotoSettings.CroppedAspectRatio = new Size(4, 3);
StorageFile file = await ui.CaptureFileAsync(CameraCaptureUIMode.Photo);
var stream = await file.OpenAsync(FileAccessMode.Read);
var bitmap = new BitmapImage();
bitmap.SetSource(stream);
StorageFolder storageFolder = KnownFolders.PicturesLibrary;
var result = await file.CopyAsync(storageFolder, "tps2.jpg");
答案 0 :(得分:1)
根据它,您应该使用using子句包装您的流或调用Dispose,而不是调用Close。 这对我不起作用,但也许对你有用。
答案 1 :(得分:0)
我看起来并没有找到答案。大概是因为发布是“开发人员预览”,它远低于发布质量,并且有许多功能缺失或损坏。由于管理系统资源(如文件)至关重要,我们可能会看到更多&下一个(“消费者预览”)版本的更好功能,在我写这篇文章的时候只有2天了。
修改强> 好消息,借助消费者预览工具(Win8 beta),IRandomAccessStream实现了IDisposable。这是StorageFile上OpenAsync操作的结果类型。