MultipartFormDataStreamProvider清理

ldx*_*ldx 7 asp.net

如果文件发布到我的webapp,那么我通过它阅读MultipartFormDataStreamProvider.FileData.

我像这样初始化提供者:

string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
Run Code Online (Sandbox Code Playgroud)

并且提供程序很好地将它们存储为"~App_Data/BodyPart_ {someguid}"但是如何在完成这些文件之后清理它们?

Lee*_*unn 3

您可以删除所有早于特定时间跨度的文件。例如

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后用类似的方式调用它:

CleanTempFiles(root, 60); // Delete all files older than 1 hour
Run Code Online (Sandbox Code Playgroud)