.net core + vue + elementui 删除指定日期段、指定路径下的所有文件

简介: # 1、呈现效果![image.png](https://ucc.alicdn.com/pic/developer-ecology/j2ygdazy447va_0782583bbc894c33a079db9e44385acd.png)# 2、后端## 1)服务层```csharp/// <summary>/// 删除指定修改日期段及指定路径下的所有文件/// </summary>/// <param name="filepath">指定路径</param>/// <returns>返回删除结果提示</returns>public string DeleteSpecif

1、呈现效果

image.png

2、后端

1)服务层

/// <summary>
/// 删除指定修改日期段及指定路径下的所有文件
/// </summary>
/// <param name="filepath">指定路径</param>
/// <returns>返回删除结果提示</returns>
public string DeleteSpecifiedPathAllFile(FileInfomationArgs args)
{
   
   
    if(args.IsNull()))
    {
   
   
        return "参数为空,请重新获取!";
    }
    try
    {
   
   
        DirectoryInfo info = new DirectoryInfo(args.FilePath);
        // 去除文件夹的只读属性
        info.Attributes = FileAttributes.Normal & FileAttributes.Directory;
        // 去除文件的只读属性
        File.SetAttributes(args.FilePath, FileAttributes.Normal);
        // 判断文件夹是否存在
        if(Directory.Exists(args.FilePath))
        {
   
   
            // 按指定修改时间段删除文件
            if(args.StartTime != null && args.EndTime != null)
            {
   
   
                List < FileInfo > fileInfomations = null;
                fileInfomations = info.GetFiles().Where(t => t.LastWriteTime >= args.StartTime && t.LastWriteTime <= args.EndTime).ToList();
                foreach(var fileInfo in fileInfomations)
                {
   
   
                    if(File.Exists(fileInfo.FullName))
                    {
   
   
                        // 如果有子文件则删除子文件
                        File.Delete(fileInfo.FullName);
                    }
                    else
                    {
   
   
                        // 循环递归删除子文件夹的所有文件
                        DeleteSpecifiedPathAllFile(args);
                    }
                }
            }
            else // 删除指定路径的全部文件
            {
   
   
                foreach(var file in Directory.GetFileSystemEntries(args.FilePath))
                {
   
   
                    if(File.Exists(file))
                    {
   
   
                        // 如果有子文件则删除子文件
                        File.Delete(file);
                    }
                    else
                    {
   
   
                        // 循环递归删除子文件夹的所有文件
                        DeleteSpecifiedPathAllFile(args);
                    }
                }
            }
            // 删除已空文件夹(此步骤会删除指定目录的最底层文件夹,建议保留文件夹目录,此句注释)
            // Directory.Delete(filepath, true);
        }
        return "当前文件修改日期段的指定路径下的所有文件删除成功!";
    }
    catch(Exception ex)
    {
   
   
        return "删除出现异常,异常原因为:" + ex.Message;
    }
}

2)请求参数类

/// <summary>
/// 文件信息参数
/// </summary>
public class FileInfomationArgs
{
   
   
    private string _FilePath = "";
    /// <summary>
    /// 指定路径
    /// </summary>
    public string FilePath
    {
   
   
        get
        {
   
   
            return _FilePath;
        }
        set
        {
   
   
            _FilePath = value;
        }
    }
    private DateTime ? _StartTime = null;
    /// <summary>
    /// 指定修改时间开始时间段
    /// </summary>
    public DateTime ? StartTime
    {
   
   
        get
        {
   
   
            return _StartTime;
        }
        set
        {
   
   
            _StartTime = value;
        }
    }
    private DateTime ? _EndTime = null;
    /// <summary>
    /// 指定修改时间结束时间段
    /// </summary>
    public DateTime ? EndTime
    {
   
   
        get
        {
   
   
            return _EndTime;
        }
        set
        {
   
   
            _EndTime = value;
        }
    }
}

3)接口层

/// <summary>
/// 删除指定路径下的所有文件
/// </summary>
/// <param name="filepath">指定路径</param>
/// <returns>返回删除结果提示</returns>
public Result string DeleteSpecifiedPathAllFile(FileInfomationArgs args);

4)控制层

/// <summary>
/// 删除指定路径下的所有文件
/// </summary>
/// <param name="filepath">指定路径</param>
/// <returns>返回删除结果提示</returns>
[HttpPost, HttpOptions]
public IActionResult DeleteSpecifiedPathAllFile(FileInfomationArgs args)
{
   
   
    return ToJsonContent(_服务层注入.DeleteSpecifiedPathAllFile(args));
}

3、前端

<html>
 <head></head>
 <body>
  <template> 
   <el-form size="small" :model="form" :rules="rules" ref="form" label-width="120px"> 
    <div class="head_main"> 
     <el-row :gutter="24"> 
      <el-col :span="20"> 
       <div class="key_tip">
         【关于文件清理的说明】 
        <p style="color: red;">本页面功能主要是删除本地指定日期段及指定路径下的所有文件</p> 
        <p style="color: green;">☞指定路径:本地文件夹的绝对路径</p> 
        <p style="color: green;">☞指定日期段:本地文件夹下的文件的最新修改日期</p> 
       </div> 
      </el-col> 
     </el-row> 
     <el-row :gutter="24"> 
      <el-col :span="12"> 
       <el-form-item label="指定路径:" prop="filePath"> 
        <el-input class="entity" type="textarea" clearable="" placeholder="请输入指定路径" v-model="form.filePath"> 
        </el-input> 
       </el-form-item> 
      </el-col> 
     </el-row> 
     <el-row :gutter="24"> 
      <el-col :span="12"> 
       <el-form-item label="指定日期段:" prop="operationTime"> 
        <el-date-picker class="entity" v-model="operationTime" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" clearable="" size="small" style="width:100%"> 
        </el-date-picker> 
       </el-form-item> 
      </el-col> 
     </el-row> 
     <el-row :gutter="15"> 
      <el-col :span="24"> 
       <el-form-item> 
        <el-button type="primary" des="el" @click="cleanUp">
         清理
        </el-button> 
        <el-button des="el" @click="reset">
         重置
        </el-button> 
       </el-form-item> 
      </el-col> 
     </el-row> 
    </div> 
   </el-form> 
  </template> 
  <script>
import {
   
    方法名 } from '方法名所在JS文件'

export default {
   
   
  data () {
   
   
    return {
   
   
      form: {
   
   
        filePath: '',
        operationTime: '',
      },
      rules: {
   
   
        filePath: [
          {
   
    required: true, message: '请输入指定路径', trigger: 'blur' },
        ],
      },
    }
  },
  created () {
   
   
  },
  methods: {
   
   
    // 清理
    cleanUp () {
   
   
      this.$refs.form.validate(async (valid) => {
   
   
        if (!valid) return
        let startTime, endTime
        if (this.operationTime) {
   
   
          startTime = this.operationTime[0]
          endTime = this.operationTime[1]
        }
        try {
   
   
          await DeleteSpecifiedPathAllFile({
   
   
            FilePath: this.form.filePath,
            StartTime: startTime,
            EndTime: endTime,
          })
          this.$notify({
   
   
            type: 'success',
            offset: 50,
            title: '当前文件修改日期段的指定路径下的所有文件删除成功',
          })
          return
        } catch (error) {
   
   
          console.log('error:', error)
        }
      })
    },
    // 重置
    reset () {
   
   
      this.form.filePath = ''
      this.operationTime = ''
    },
  },
}
</script> 
  <style lang="scss">
.head_main {
   
   
  .key_tip {
   
   
    box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
    padding: 8px 16px;
    background-color: #ecf8ff;
    border-radius: 4px;
    border-left: 5px solid #50bfff;
    margin: 20px 0;
    line-height: 22px;
  }
}
</style> 
 </body>
</html>

代码和呈现效果如上所述。

注:指定路径为本地的绝对路径;指定日期段的判定依据是文件的修改日期

以上就是MySQL 版本号排序的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

目录
相关文章
|
19天前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
19天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
1月前
|
JavaScript
详解Vue文件结构+实现一个简单案例
详解Vue文件结构+实现一个简单案例
|
1月前
|
JavaScript
【Ant designe vue】中有关表格列中日期展示 yyyy-mm-dd 格式问题
【Ant designe vue】中有关表格列中日期展示 yyyy-mm-dd 格式问题
17 0
|
3月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
72 0
|
3月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
37 0
|
3月前
|
开发框架 JavaScript .NET
ASP.NET Core的超级大BUG
ASP.NET Core的超级大BUG
43 0
|
9天前
|
JavaScript 前端开发
vue 实现在线预览PDFpdf文件
vue 实现在线预览PDFpdf文件
22 0
|
20天前
|
JavaScript
vue element 导出blob后台文件流xlsx文件自动下载(且规避乱码)
vue element 导出blob后台文件流xlsx文件自动下载(且规避乱码)
|
1月前
|
JavaScript 前端开发
HTM文件中使用vue
HTM文件中使用vue
11 0