在我的应用中,我发送了一封包含 Windows商店分享合同的电子邮件。一切正常,只有一个我无法解决的问题。我在哪里以及如何删除创建的文件?因为如果我在任何地方删除它,电子邮件就没有附件。有我的代码:
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();
}
}
答案 0 :(得分:2)
您可以添加即使在应用未运行时也会运行的后台任务,该任务会定期清除临时文件。您甚至可以了解何时可以运行,例如,如果用户远离计算机。 更多信息:Guidelines for background tasks
更简单的解决方案是在应用启动(加载事件)或关闭时简单地删除所有这些。但这是一个不太稳健的解决方案。