我应该在哪里删除我的文件与Windows商店应用程序中的共享合同

时间:2014-02-09 15:06:42

标签: c# .net windows-store-apps

在我的应用中,我发送了一封包含 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();
        }
    }

1 个答案:

答案 0 :(得分:2)

您可以添加即使在应用未运行时也会运行的后台任务,该任务会定期清除临时文件。您甚至可以了解何时可以运行,例如,如果用户远离计算机。 更多信息:Guidelines for background tasks

更简单的解决方案是在应用启动(加载事件)或关闭时简单地删除所有这些。但这是一个不太稳健的解决方案。