工具方法:下载文件时碰到相同文件,文件名增加(1) 如果有(1)则下载文件名后缀(2)
2015-09-19 11:38
477 查看
下载方法不提供,本文只提供获取尾部带(1)或(2)这种路径的方法--> String getUniquePath(String path)
其他方法都是子方法
其他方法都是子方法
//主方法:获取正确的文件存放路径 private static String getUniquePath(String path) { String resPath = path; File file = new File(resPath); while(file.exists()) { String[] arrayStr = resPath.split("\\."); if(hasNumSuffix(arrayStr[arrayStr.length-2])) { arrayStr[arrayStr.length-2] = plusNumSuffix(arrayStr[arrayStr.length-2]); }else { arrayStr[arrayStr.length-2] = addNumSuffix(arrayStr[arrayStr.length-2]); } resPath = mergeStringArray(arrayStr); file = new File(resPath); } return resPath; } private static boolean hasNumSuffix(String str) { if (str.length() >= 3) { if (str.charAt(str.length() - 1) == ')' && str.contains("(") && str.indexOf('(') != (str.length() - 2)) { if (isNumeric(getLastNumInBrackets(str))) return true; else return false; } else return false; } else return false; } public static boolean isNumeric(String str){ Pattern pattern = Pattern.compile("[0-9]*"); return pattern.matcher(str).matches(); } private static String getLastNumInBrackets(String str) { String resNumStr; int leftBracketIndex = str.length()-1; ArrayList<String> box = new ArrayList<String>(); while(str.charAt(leftBracketIndex)!='(') { leftBracketIndex--; } resNumStr = str.substring(leftBracketIndex+1, str.length()-1); return resNumStr; } private static String plusNumSuffix(String str) { String numStr; String prefix; String resStr; int leftBracketIndex = str.length()-1; ArrayList<String> box = new ArrayList<String>(); while(str.charAt(leftBracketIndex)!='(') { leftBracketIndex--; } numStr = str.substring(leftBracketIndex+1, str.length()-1); int num = Integer.valueOf(numStr); numStr = String.valueOf(++num); prefix = str.substring(0,leftBracketIndex+1); resStr = prefix + numStr + str.charAt(str.length()-1); return resStr; } private static String addNumSuffix(String str) { return str+"(1)"; } private static String mergeStringArray(String[] arrayStr) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < arrayStr.length; i++) { sb.append(arrayStr[i]); if (i != arrayStr.length - 1) sb.append("."); } return sb.toString(); }
相关文章推荐
- 技术人生:故事之十四 JAVA,ACTIVEX?
- sql 查询结果增加一列,列名固定,值也固定(mysql可行,其他未知)
- 使用python创建一个检测不到的自定义SSH后门
- Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统
- UDP打洞和心跳包设计
- win10更换登陆背景和关闭锁屏
- 第3周实践项目4 - 顺序表应用(2)
- LINK : fatal error LNK1104: cannot open file "mfc42u.lib"
- display:inline、block、inline-block的区别
- 四种会话跟踪技术
- gensim文档-相似性查询
- ASP.NET(C#)将数据导出到Word或Excel
- Java记录 -38- 随机数
- AsyncTask异步任务的“白话”介绍
- Spark1.0.0 学习路径
- POJ 1062 【带约束的最短路问题】
- Android短信发送器实现方法
- Android input 输入系统学习
- webstorm 调出 terminal 快捷键
- RecyclerView 以及 ItemClickListener的实现