迷之程序员
2018-04-10 07:30
采纳率: 50%
浏览 1.2k

批量文件中找出每个文件名相同且序号最大的文件

图片说明__是这样的,有几个文件夹,每一个之中有这样一大批压缩文件,
每个文件都遵循一样的命名规则:name__123.zip
现在要做的就是选中一个文件夹,选出相同name文件中序号最大的文件。
其实就是选出这些文件中每一个的最新版本,做一个全部文件最新版本的集合。
然后删除其余的文件。
关键就是需要对文件名进行操作,选出么一个相同名字中排序号最大的。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • little_how 2018-04-10 07:56
    已采纳

    因为是c++不太会,但是思路是一样的;
    1.读取文件夹下的所有文件名(list),可以基于筛选,如果不只是zip结尾的话,可以根据规则筛选;
    2.分解名称:Map(文件名前缀(name), list(文件名序号));
    3.list可以是排序list,也可以基于自己排序;//基于倒序排列
    4.遍历map,去除list排序中第一个值;其余值可以拼接组成文件全名然后删除

    希望对你有帮助....

    点赞 打赏 评论
  • weixin_40757179 2018-04-10 07:32

    我感觉需要做个排序,或者文件名用数据库来挑选

    点赞 打赏 评论
  • zhouyunxu01 2018-04-10 09:18

    文件命名既然有规则 将文件名 截取出来比较序号就行

    点赞 打赏 评论
  • 我家狗狗叫猫咪 2018-04-10 09:58
    1. 获取文件夹下所有的文件名称
    2. 写匹配数字的正则表达式,把每个文件名截取成2部分,一部分是name,一部分是数字字符串,并转换为数字
    3. 按name进行分组,取每组的最大数字
    4. 获取每组的 key+数字,即得到要的结果
    点赞 打赏 评论
  • 痴痴追梦 2018-04-11 02:02

    while(有文件)
    {
    取最大的文件名;
    删除一批(除数字外)一样的文件名;
    }

    点赞 打赏 评论

相关推荐 更多相似问题