MultipartFormDataStreamProvider清理

时间:2014-08-22 09:04:00

标签: asp.net

如果文件发布到我的网络应用程序,那么我通过MultipartFormDataStreamProvider.FileData阅读它们。

我像这样初始化提供者:

string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);

提供商很好地将它们存储为“~App_Data / BodyPart_ {someguid}” 但是在完成这些文件之后如何清理这些文件呢?

2 个答案:

答案 0 :(得分:1)

您可以删除所有超过特定时间跨度的文件。 e.g。

private void CleanTempFiles(string dir, int ageInMinutes)
{
    string[] files = Directory.GetFiles(dir);

    foreach (string file in files)
    {
        var time = File.GetCreationTime(file);

        if (time.AddMinutes(ageInMinutes) < DateTime.Now)
        {
            File.Delete(file);
        }
    }
}

然后用以下内容调用它:

CleanTempFiles(root, 60); // Delete all files older than 1 hour

答案 1 :(得分:1)

我知道这个问题已经过时了,但我发现删除临时文件的最佳方法是在处理之后。

string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);

foreach (var file in provider.Files)
{
    // process file upload...

    // delete temporary file
    System.IO.File.Delete(file.LocalFileName);
}