一、规则如下:

设文件名x.x,如需要保存文件的目标位置已经有x.x,则自动命名本次保存文件的名称为x(1).x;如果x(1).x也已经存在,则命名为x(2).x。如此类推,直到不再重复。

二、实现代码:

//保存文件之前看看有没有同名文件,有的话后面加(1),如果加了还有同名,就加(1+N)直到不再重名File file = null;int maxTry = 0xFFFF;String fileName = destFileName;for (int i = 0; i < maxTry; i++) {if (i == 0) {file = new File(dir, destFileName);if (!file.exists()) {file.createNewFile();break;}}if (i > 0) {String fileNameSpilt[] = destFileName.split("\\.");String fileNameWithoutLastPart = "";//如果有后续名,去除后续名for (int j = 0; j < fileNameSpilt.length - 1; j++) {fileNameWithoutLastPart += fileNameSpilt[j];}if (i == maxTry) {Log.e("DownloadUtil", "重试次数过多,以时间戳方式保存");fileName = String.format("%d.%s", System.currentTimeMillis(), fileNameSpilt.length > 1 ? fileNameSpilt[fileNameSpilt.length - 1] : "");} else {fileName = String.format("%s(%d).%s", fileNameWithoutLastPart, i, fileNameSpilt.length > 1 ? fileNameSpilt[fileNameSpilt.length - 1] : "");}file = new File(dir, fileName);if (!file.exists()) {file.createNewFile();break;}}}

一种重复命名自动更名机制相关推荐

  1. rabbitmq可靠发送的自动重试机制

    rabbitmq可靠发送的自动重试机制 转载地址:http://www.jianshu.com/p/6579e48d18ae http://www.jianshu.com/p/4112d78a8753 ...

  2. 信息系统自动决策机制的使用

    声明 本文是学习360 企业个人信息合规思路与实践报告 2021. 下载地址 http://github5.com/view/1273而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我 ...

  3. Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制

    在<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>中,我介绍了获取AccessToken(通用接口)的方法. 在实际的开发过程中,所有的高级接口都需 ...

  4. Software knowledge Encyclopedia:extjs是一种软件,自动生成行号,支持checkbox全选

    extjs是一种软件.自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能. 功能丰富,无人能出其右. 无论是界 ...

  5. 超低功耗研发-STM32L151C8T6芯片(三)RTC自动唤醒机制

    超低功耗产品必然涉及到"唤醒"机制,唤醒后执行 正常的功能代码,这个"唤醒"动作有多种,基本上有外部中断.中断事件.RTC自动唤醒等,外部中断多是IO口中断,比 ...

  6. Android9.0 本地时区和本地时间的自动更新机制

    Android9.0 本地时区和本地时间的自动更新机制 简介 现在Android通过网络同步时间有两种方式:NITZ和NTP,它们使用的条件不同,可以获取的信息也不一样:勾选自动同步功能后,手机首先会 ...

  7. 痞子衡嵌入式:MCUXpresso IDE下工程链接文件配置管理与自动生成机制

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下工程链接文件配置管理与自动生成机制. 痞子衡在 2018 年初写过一个专题 <嵌入式开发文件系列&g ...

  8. 绕线画算法python_一种绕线画自动生成及加工的方法和设备与流程

    本发明涉及技术领域,具体涉及一种绕线画自动生成及加工的方法和设备. 背景技术: 绕线画又称钉子画,简而言之,就是在木板上钉上钉子,然后在钉子间绕线,做出大概的轮廓,然后用线在钉子之间缠绕,组成几何图形 ...

  9. 关于军棋自动裁判机制的设想

    一般来说,下军棋需要三个人,其中一个人当裁判. 如果只有两个人,又想玩军棋,就需要有一个自动裁判机制. 想到了几种自动裁判的方案 1 图像识别,用手机自动识别棋子上的文字,缺点是拍照,识别耗时较长 补 ...

最新文章

  1. LeetCode简单题之检查是否所有字符出现次数相同
  2. PHP — Cookie and Session篇
  3. dlna和miracast可以共存吗_AirPlay、DLNA、Miracast三大无线技术介绍
  4. Django从理论到实战(part22)--include模板标签
  5. CodeForces - 1141ESuperhero Battle简单模拟
  6. 页面某个模块的文字内容是动态的,可能是几个字,也可能是一句话。然 后,希望文字少的时候居中显示,文字超过一行的时候居左显示。该如何实现?...
  7. php token 表单重复提交,PHP生成token防止表单重复提交2个例子
  8. BZOJ 1070: [SCOI2007]修车
  9. linux服务器学习笔记:如何使用密钥认证机制远程登录linux?
  10. 未雨绸缪,数据保护之NBU介质备份
  11. Kali Linux学习之arp地址欺骗
  12. 踩坑记---Win10安装anaconda及tensorflow-cpu版
  13. DPDK Rx flexible descriptor在Intel E810网卡中的使用
  14. html如何让网页全屏,如何把页面弄成全屏?
  15. 利用Python进行数据分析
  16. Oracle存储过程语法记录
  17. Mysql慢查询日志的使用 和 Mysql的优化
  18. 函数打桩原理_难重现问题定位“函数打桩”
  19. 在anaconda环境中安装tflearn模块
  20. mk.test()函数实现Mann-kendall趋势检验

热门文章

  1. python画气泡图_用python 来绘制气泡图的简单技巧
  2. 盘点2018年化工行业大事故!回顾那些令人心痛的瞬间......
  3. ConnectString中enlist设置的含义
  4. android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码...
  5. java io 呕心沥血的学习 学了就忘
  6. 终端操作GitHub代码以及代码的版本控制(develop/master)多图
  7. des加密+base64编码,base64解码+des解密
  8. python新手入门指导_Python初学者入门指导,Python自学者的福音来了
  9. 威联通使用 HP 1020 Plus 打印机
  10. Unity3D 协程