V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caihp
V2EX  ›  Java

如何用 Java 实现类似 windows 里面新建文件夹重名了在后面加一的功能

  •  
  •   caihp · 2021-06-25 18:13:34 +08:00 · 1995 次点击
    这是一个创建于 1245 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,小弟最近在做一个网盘项目,在上传文件到网盘时想要实现类似 windows 里面那样,如果重名了就自动在文件名后面加个数字这样的功能,然后要做到重复上传的话后面的数字是递增的这样的效果,麻烦各位大佬给小弟帮帮忙
    15 条回复    2021-06-28 10:39:52 +08:00
    yitingbai
        1
    yitingbai  
       2021-06-25 18:20:39 +08:00
    最二的方案: 保存文件 > 文件已存在 > 文件名+1 再保存 > 文件已存在 > 文件名+1 再保存
    sprite82
        2
    sprite82  
       2021-06-25 18:42:17 +08:00 via Android
    @yitingbai 这不是微信行为吗😂
    cmdOptionKana
        3
    cmdOptionKana  
       2021-06-25 18:43:41 +08:00
    建议加时间,或加个随机数,比循环加一优雅一点。
    dallaslu
        4
    dallaslu  
       2021-06-25 18:53:06 +08:00
    先拿到目录中所有文件名,然后……
    lybcyd
        5
    lybcyd  
       2021-06-25 20:10:59 +08:00 via Android
    以前做过类似的加的是时间,实现比较简单
    herozzm
        6
    herozzm  
       2021-06-25 20:14:34 +08:00 via Android
    递归就可以实现
    no1xsyzy
        7
    no1xsyzy  
       2021-06-26 00:45:35 +08:00
    @sprite82 微信和资源管理器还是不一样的
    微信是 (1) (1)(1) (1)(1)(1) (1)(1)(1)(1),资源管理器是 (1) (2) (3) (4)
    sprite82
        8
    sprite82  
       2021-06-26 01:49:01 +08:00
    重新看了下一楼的原话,发现自己看错了😅
    caihp
        9
    caihp  
    OP
       2021-06-26 08:34:08 +08:00
    @yitingbai 这么简单粗暴吗···我想优雅一点点~
    caihp
        10
    caihp  
    OP
       2021-06-26 08:35:37 +08:00
    @dallaslu 你倒是往下说呀~
    caihp
        11
    caihp  
    OP
       2021-06-26 08:36:10 +08:00
    @lybcyd
    @herozzm
    我要实在搞不出来就这么搞···
    kisick
        12
    kisick  
       2021-06-26 13:25:12 +08:00
    获得目录下面所有的文件名,搞一个 map,文件名作为 key,出现的次数为 value 。
    while filename in map :
    codehz
        13
    codehz  
       2021-06-27 19:01:15 +08:00
    windows 的算法很简单粗暴的
    就是不断重试+1 创建,直到成功。。
    caihp
        14
    caihp  
    OP
       2021-06-28 09:40:27 +08:00
    @codehz 我还以为会很高深···
    xmt328
        15
    xmt328  
       2021-06-28 10:39:52 +08:00
    @codehz 我反而觉得这样比便利整个目录更快
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   988 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:40 · PVG 04:40 · LAX 12:40 · JFK 15:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.