Skip to content

整理超过一定规模文件数量的大文件夹工具,减轻单一文件夹文件数量太大的压力

Notifications You must be signed in to change notification settings

aliubo/batch_file_tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

批文件定义

本目录下存在.batch文件夹的目录

移动规则

设根目录为rootdir,当前整理的目录为currdir

初始化流程

  1. 检查rootdir的所有存在的祖先目录,如果存在.batch目,则中止(如果存在因权限问题无法检查的直接中止)
  2. 判断rootdir是否存在
    2.1. 如果存在:检查rootdir是否存在子目录,如果存在子目录并且没有.batch目录则中止。如果不存在子目录则创建.batch文件夹并初始化配置。
    2.2 如果不存在:创建rootdir文件夹,以及创建.batch,初始化配置
  3. 执行整理流程

合法目录检测流程

  1. 如果rootdir不存在,则不合法
  2. 如果.batch不存在于rootdir,则不合法

整理流程

  1. 通过currdir获取距离最近的rootdir,需要符合合法目录检测流程
  2. 统计当前目录的所有文件名,根据分割规则把文件名分组,每个被分割的成为分割节点
  3. 当前目录的文件判断是否存在子文件夹,如果存在直接移动,并且对指定的目录执行整理流程
  4. 如果当前目录的文件(不含文件夹)数量小于等于FILE_MAX,则中止当前整理流程
  5. 将所有文件放置到字典树上,按照分割节点进行创建字典树的节点
  6. 对该树进行前缀和求和,每个字典树的节点保存着当前节点以及所有子节点的文件数量之和。定义节点i以及所有子节点的文件数量之和为filenum(i)
  7. 对字典树从根节点进行广度优先搜索,遍历到节点i时,有两种情况
    7.1. filenum(i) > FILE_MAX
    跳过该节点,等待广度优先搜索继续遍历其子节点
    7.2. filenum(i) <= FILE_MAX
    递归创建该节点目录,然后将这些文件放入创建好的目录。并且跳过该节点的所有子节点
  8. 整理结束

About

整理超过一定规模文件数量的大文件夹工具,减轻单一文件夹文件数量太大的压力

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages