首页 技术 正文
技术 2022年11月6日
0 收藏 396 点赞 881 浏览 1623 个字

最近在忙Asp.Net MVC开发一直没空更新UWP这块,不过有时间的话还是需要将自己的经验和大家分享下,以求共同进步。

在上章【UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)】已经谈到了使用FileOpenPicker进行文件选择,以及CameraCaptureUI进行拍照。

对于文件选择一般进行如下设置就能实现:

// 选择多个文件
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Clear();
openPicker.FileTypeFilter.Add("*");
var files = await openPicker.PickMultipleFilesAsync();

对于拍照功能我想大家一般都只做到如下的设置:

// 拍照
CameraCaptureUI captureUI = new CameraCaptureUI();
captureUI.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Png;
captureUI.PhotoSettings.AllowCropping = false;
var photo = await captureUI.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (photo != null)
{
// 文件操作(移动除外)
                        }

如果你只对照片进行了移动以外的操作,您的应用会随着时间推移越来越占用空间?

因为拍照功能会缓存照片文件,如果应用退出时不做清理就很可能会一直留在TempState文件夹中,随着时间推移积累的照片就会越来越多,同时这样也容易导致应用泄密个人信息。

比如【UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)】做的应用,现在去查看应用的TempState文件夹,拍的照片居然还在UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题),很可怕对不对?

UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)

UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)

对于UWP的数据存储有必要看看微软的介绍:https://msdn.microsoft.com/zh-cn/library/windows/apps/hh464917

TempStaeLocalCache的区别:http://stackoverflow.com/questions/34046509/what-is-the-difference-and-similarity-if-any-between-localcache-and-tempstate

对于TempState临时应用数据微软的说法是:

临时应用数据存储类似于缓存。它的文件不会漫游,随时可以删除。系统维护任务可以随时自动删除存储在此位置的数据。用户还可以使用“磁盘清理”清除临时数据存储中的文件。 临时应用数据可用于存储应用会话期间的临时信息。无法保证超出应用会话结束时间后仍将保留此数据,因为如有需要,系统可能回收已使用的空间。

—也就是说如果系统没有及时清理,这个数据就一直存在(就如本人电脑的情况)!UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)—正是由于这个原因才有必要手动做清除处理!

正确使用临时目录(拍照功能等):

大概步骤:应用启动,清理临时目录(如果是从挂起恢复忽略此步),临时目录中文件操作(如启动拍照等),应用退出,清理临时目录(如果应用挂起时忽略此步)

代码如下:

           try
{
await ApplicationData.Current.ClearAsync(ApplicationDataLocality.Temporary);
}
catch
{
// 清理临时目录异常时不做任何处理
}

代码位置根据实际应用合理选择!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,033
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,520
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,368
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,148
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,781
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,862