在我的应用程序中,我发送带有Windows Store Share Contract的电子邮件。一切正常,只有一个我无法解决的问题。我在哪里以及如何删除创建的文件?因为如果我在任何地方删除它,电子邮件将没有附件。有我的代码:
async void ShareImageHandler(DataTransferManager sende, DataRequestedEventArgs e)
{
DataRequest request = e.Request;
DataRequestDeferral deferral = request.GetDeferral();
var localFolder = ApplicationData.Current.LocalFolder;
var file = await localFolder.CreateFileAsync(Guid.NewGuid(); + ".png");
var screenShotter = new ScreenShotter();
try
{
await screenShotter.SaveVisualElementToFileAsync(
gridPrintForPostCard, file, new Rect(0, 0, 10000, 10000));
request.Data.Properties.Thumbnail =
RandomAccessStreamReference.CreateFromFile(file);
request.Data.SetBitmap(
RandomAccessStreamReference.CreateFromFile(file));
}
finally
{
deferral.Complete();
}
}
您可以添加一个后台任务,即使该应用未运行,该后台任务也会运行,该任务会定期清除临时文件。您甚至可以确定何时可以运行,例如,如果用户不在计算机旁边。更多信息:后台任务准则
一个更简单的解决方案是在应用启动(加载事件)或关闭时将其全部删除。但这不是一个健壮的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句