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

2021-06-25 18:13:34 +08:00
 caihp
如题,小弟最近在做一个网盘项目,在上传文件到网盘时想要实现类似 windows 里面那样,如果重名了就自动在文件名后面加个数字这样的功能,然后要做到重复上传的话后面的数字是递增的这样的效果,麻烦各位大佬给小弟帮帮忙
1984 次点击
所在节点    Java
15 条回复
yitingbai
2021-06-25 18:20:39 +08:00
最二的方案: 保存文件 > 文件已存在 > 文件名+1 再保存 > 文件已存在 > 文件名+1 再保存
sprite82
2021-06-25 18:42:17 +08:00
@yitingbai 这不是微信行为吗😂
cmdOptionKana
2021-06-25 18:43:41 +08:00
建议加时间,或加个随机数,比循环加一优雅一点。
dallaslu
2021-06-25 18:53:06 +08:00
先拿到目录中所有文件名,然后……
lybcyd
2021-06-25 20:10:59 +08:00
以前做过类似的加的是时间,实现比较简单
herozzm
2021-06-25 20:14:34 +08:00
递归就可以实现
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
2021-06-26 01:49:01 +08:00
重新看了下一楼的原话,发现自己看错了😅
caihp
2021-06-26 08:34:08 +08:00
@yitingbai 这么简单粗暴吗···我想优雅一点点~
caihp
2021-06-26 08:35:37 +08:00
@dallaslu 你倒是往下说呀~
caihp
2021-06-26 08:36:10 +08:00
@lybcyd
@herozzm
我要实在搞不出来就这么搞···
kisick
2021-06-26 13:25:12 +08:00
获得目录下面所有的文件名,搞一个 map,文件名作为 key,出现的次数为 value 。
while filename in map :
codehz
2021-06-27 19:01:15 +08:00
windows 的算法很简单粗暴的
就是不断重试+1 创建,直到成功。。
caihp
2021-06-28 09:40:27 +08:00
@codehz 我还以为会很高深···
xmt328
2021-06-28 10:39:52 +08:00
@codehz 我反而觉得这样比便利整个目录更快

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/785817

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX