一种重复命名自动更名机制
一、规则如下:
设文件名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;}}}
一种重复命名自动更名机制相关推荐
- rabbitmq可靠发送的自动重试机制
rabbitmq可靠发送的自动重试机制 转载地址:http://www.jianshu.com/p/6579e48d18ae http://www.jianshu.com/p/4112d78a8753 ...
- 信息系统自动决策机制的使用
声明 本文是学习360 企业个人信息合规思路与实践报告 2021. 下载地址 http://github5.com/view/1273而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制
在<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>中,我介绍了获取AccessToken(通用接口)的方法. 在实际的开发过程中,所有的高级接口都需 ...
- Software knowledge Encyclopedia:extjs是一种软件,自动生成行号,支持checkbox全选
extjs是一种软件.自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能. 功能丰富,无人能出其右. 无论是界 ...
- 超低功耗研发-STM32L151C8T6芯片(三)RTC自动唤醒机制
超低功耗产品必然涉及到"唤醒"机制,唤醒后执行 正常的功能代码,这个"唤醒"动作有多种,基本上有外部中断.中断事件.RTC自动唤醒等,外部中断多是IO口中断,比 ...
- Android9.0 本地时区和本地时间的自动更新机制
Android9.0 本地时区和本地时间的自动更新机制 简介 现在Android通过网络同步时间有两种方式:NITZ和NTP,它们使用的条件不同,可以获取的信息也不一样:勾选自动同步功能后,手机首先会 ...
- 痞子衡嵌入式:MCUXpresso IDE下工程链接文件配置管理与自动生成机制
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下工程链接文件配置管理与自动生成机制. 痞子衡在 2018 年初写过一个专题 <嵌入式开发文件系列&g ...
- 绕线画算法python_一种绕线画自动生成及加工的方法和设备与流程
本发明涉及技术领域,具体涉及一种绕线画自动生成及加工的方法和设备. 背景技术: 绕线画又称钉子画,简而言之,就是在木板上钉上钉子,然后在钉子间绕线,做出大概的轮廓,然后用线在钉子之间缠绕,组成几何图形 ...
- 关于军棋自动裁判机制的设想
一般来说,下军棋需要三个人,其中一个人当裁判. 如果只有两个人,又想玩军棋,就需要有一个自动裁判机制. 想到了几种自动裁判的方案 1 图像识别,用手机自动识别棋子上的文字,缺点是拍照,识别耗时较长 补 ...
最新文章
- LeetCode简单题之检查是否所有字符出现次数相同
- PHP — Cookie and Session篇
- dlna和miracast可以共存吗_AirPlay、DLNA、Miracast三大无线技术介绍
- Django从理论到实战(part22)--include模板标签
- CodeForces - 1141ESuperhero Battle简单模拟
- 页面某个模块的文字内容是动态的,可能是几个字,也可能是一句话。然 后,希望文字少的时候居中显示,文字超过一行的时候居左显示。该如何实现?...
- php token 表单重复提交,PHP生成token防止表单重复提交2个例子
- BZOJ 1070: [SCOI2007]修车
- linux服务器学习笔记:如何使用密钥认证机制远程登录linux?
- 未雨绸缪,数据保护之NBU介质备份
- Kali Linux学习之arp地址欺骗
- 踩坑记---Win10安装anaconda及tensorflow-cpu版
- DPDK Rx flexible descriptor在Intel E810网卡中的使用
- html如何让网页全屏,如何把页面弄成全屏?
- 利用Python进行数据分析
- Oracle存储过程语法记录
- Mysql慢查询日志的使用 和 Mysql的优化
- 函数打桩原理_难重现问题定位“函数打桩”
- 在anaconda环境中安装tflearn模块
- mk.test()函数实现Mann-kendall趋势检验
热门文章
- python画气泡图_用python 来绘制气泡图的简单技巧
- 盘点2018年化工行业大事故!回顾那些令人心痛的瞬间......
- ConnectString中enlist设置的含义
- android仿IT之家、炫酷水波纹、Kotlin MVP项目、后台模拟点击、蜂巢迷宫小游戏等源码...
- java io 呕心沥血的学习 学了就忘
- 终端操作GitHub代码以及代码的版本控制(develop/master)多图
- des加密+base64编码,base64解码+des解密
- python新手入门指导_Python初学者入门指导,Python自学者的福音来了
- 威联通使用 HP 1020 Plus 打印机
- Unity3D 协程