c# - 尝试删除在 .NET MVC 中插入时早于 X 天的文件

标签 c# asp.net asp.net-mvc

我正在尝试根据“上次修改日期”删除目录中超过 10 天的文件。它应该做的是从 moxiemanager 上传中获取输入(它会这样做),并将其输入到数据库中(它会这样做)。然后它应该删除超过 10 天的文件,但事实并非如此。以下是我的代码:

public ActionResult CreateMain(BulletinsViewModel viewModel)
{
    if (ModelState.IsValid)
    {
        BulletinsContext.tblBulletins.Add(new tblBulletin
        {
            ID = viewModel.BulletinID,
            BulletinDisplayDate = viewModel.BulletinDisplayDate,
            BulletinFilename = viewModel.MainBulletinName
        });

        DirectoryInfo DI = new DirectoryInfo(Server.MapPath("~/Files/Bulletins"));
        FileSystemInfo[] FSI = DI.GetFiles();
        foreach (FileSystemInfo fInfo in FSI)
        {
            if (fInfo.Extension == ".pdf")
            {
                DateTime dt = DateTime.Now.AddDays(-10);
                if (fInfo.CreationTime < dt)
                    try
                    {
                        fInfo.Delete();
                    }
                    catch { }
                }
            }
            BulletinsContext.SaveChanges();
            return RedirectToAction("MainBulletins");
        }

    return View(viewModel);
}

我认为可能是文件路径不是此方法的正确语法,或者“fInfo.CreationTime”部分是错误的,但我觉得 CreationTime 会是最后修改?

最佳答案

您需要获取文件的LastModifiedDate,您可以通过FileSystemInfo类的属性LastWriteTime获取该文件。

像这样改变你的 if 条件

if (fInfo.LastWriteTime < dt)
{
 //your code
}

关于c# - 尝试删除在 .NET MVC 中插入时早于 X 天的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30910872/

相关文章:

c# - 静默异常,

c# - 如何从数据库中获取唯一记录?

javascript - 我怎样才能给菜单项激活类

c# - 如何通过 AJAX 渲染局部 View ?

c# - 哪些单元测试框架以及如何开始(针对 asp.net mvc)

c# - .NET 3.5 处理注册表项

c# - 在 VS Code/Mac OSX 上添加服务引用支持

c# - SortedSets.UnionAndStore 的 Redis Booksleeve 重量选项?

c# - 帮助调试 - Application_Start 何时在 global.asax 文件中运行?

c# - 使用 ModelBinder 属性与 ModelBinders.Add()