Atitit 重复文件清理工具 按照文件名 目录 1. 原理, 1 1.1. If base filex exist dele other files 1 1.2. Get getStartIdex
Atitit 重复文件清理工具 按照文件名
目录
1. 原理, 1
1.1. If base filex exist dele other files 1
1.2. Get getStartIdexExistfileMinidx 1
1.3. 循环执行start ---100的文件执行器一般是移动 2
2. clrDeliNameFileV2t67 3
- 原理,
- If base filex exist dele other files
if (new File(baseFile).exists()) {
process_duliFiles(new File(baseFile), new File(dirout), 1, 50, dir_source, fileConsumer1);
} else {
try {
process_duliFiles_byTop1(new File(baseFile), new File(dirout), 50, dir_source, fileCo
- Get getStartIdexExistfileMinidx
start = getStartIdexExistfileMinidx(baseFile, end);
process_duliFiles(baseFile, destDir, start + 1, end, baseDir, fileConsumer1);
private static int getStartIdexExistfileMinidx(File baseFile, int end) throws CantFindEx {
String dir = baseFile.getParent();
String basenameBase =
for (int i = 1; i < end; i++) {
String f = dir + "\\" + basenameBase + "(" + i + ")." + ext;
if (new File(f).exists())
return i;
- 循环执行start ---100的文件执行器一般是移动
for (int i = start; i < end; i++) {
String f = dir_baseFile_getParent + "\\" + basenameBase + "(" + i + ")." + ext;
String destFpath = destDir + "\\" + rltPath + "\\" + basenameBase + "(" + i + ")." + ext;
fileConsumer1.accept(paramM);
- clrDeliNameFileV2t67
/bookmarksHtmlEverythingIndexPrj/src/aaaEverythingIndexGenerPkg/clrDeliNameFileV2t67.java
package aaaEverythingIndexGenerPkg;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
import org.apache.log4j.NDC;
import com.alibaba.fastjson.JSON;
import com.attilax.io.FilenameUtilsT55;
//import com.attilax.io.filex;
import com.attilax.util.CantFindEx;
import com.google.common.collect.Maps;
public class clrDeliNameFileV2t67 {
static org.apache.log4j.Logger logger = Logger.getLogger(FileTraveList.class);
// static static walkFileTreeLogger
static int listSum;
public static void main(String[] args) throws Exception {
// t1("D:\\l3 sumdoc s2018 torb31 v2 t1_filelist.txt");
// trave_dir("C:\\Users\\Administrator\\Documents\\law res
// 法学资源库","d:\\law res 法学资源库clrdeduli");
trave_dir("D:\\0gif sexy\\2019billpic\\bill t1 final\\bill t1", "d:\\billt1Duli");
// trave_dir("C:\\Users\\Administrator\\Documents\\law res
// 法学资源库","d:\\law res 法学资源库clrdeduli3");
System.out.println("--");
}
private static void trave_dir(String dir_source, String dirout) throws Exception {
// 处理下级多层目录
Files.walkFileTree(Paths.get(dir_source), new SimpleFileVisitor<Path>() {
// 处理文件
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
// walkFile log
String fpath = file.toString();
if (fpath.contains("是印度最古老的一部法律文献"))
System.out.println("dbg");
String string = "\t正在访问" + fpath + "文件";
System.out.println(string);
logger.info(string);
String ext = FilenameUtils.getExtension(file.toFile().getAbsolutePath());
String basenameBase = FilenameUtilsT55.getBaseName(file.toFile().getAbsolutePath());
String dirParent = file.toFile().getParent();
String baseFile = dirParent + "\\" + basenameBase + "." + ext;
logger.info("baseFile will" + baseFile);
String baseFile1 = dirParent + "\\" + basenameBase + "(1)." + ext;
Consumer<Map> fileConsumer1 = (paraM) -> {
String rltPath = FilenameUtilsT55.rltPath(dirParent, dir_source);
// String
// destFpath=dirout+"\\"+rltPath+"\\"+basenameBase+"("+i+")."+ext;
Map traceM = Maps.newLinkedHashMap();
traceM.put("act", "moveFile");
traceM.put("baseFile", paraM);
logger.info(JSON.toJSONString(traceM, true));
try {
// copyFile
FileUtils.moveFile((File) paraM.get("f"), (File) paraM.get("destFpath"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
}
// duliFiles log
};
if (new File(baseFile).exists()) {
process_duliFiles(new File(baseFile), new File(dirout), 1, 50, dir_source, fileConsumer1);
} else {
try {
process_duliFiles_byTop1(new File(baseFile), new File(dirout), 50, dir_source, fileConsumer1);
} catch (CantFindEx e) {
logger.error(e);
}
}
return FileVisitResult.CONTINUE; // 没找到继续找
}
});
// total log
// Map traceM=Maps.newLinkedHashMap();
// traceM.put("file", file);
// traceM.put("listSum", listSum);
// logger.info(JSON.toJSONString(traceM));
// 处理目录
}
protected static void process_duliFiles_byTop1(File baseFile, File destDir, int end, String baseDir,
Consumer<Map> fileConsumer1) throws CantFindEx, IOException {
String dir = baseFile.getParent();
String basenameBase = FilenameUtilsT55.getBaseName(baseFile.getAbsolutePath());
String ext = FilenameUtils.getExtension(baseFile.getAbsolutePath());
String rltPath = FilenameUtilsT55.rltPath(dir, baseDir);
int start;
start = getStartIdexExistfileMinidx(baseFile, end);
process_duliFiles(baseFile, destDir, start + 1, end, baseDir, fileConsumer1);
}
private static int getStartIdexExistfileMinidx(File baseFile, int end) throws CantFindEx {
String dir = baseFile.getParent();
String basenameBase = FilenameUtils.getBaseName(baseFile.getAbsolutePath());
String ext = FilenameUtils.getExtension(baseFile.getAbsolutePath());
for (int i = 1; i < end; i++) {
String f = dir + "\\" + basenameBase + "(" + i + ")." + ext;
if (new File(f).exists())
return i;
}
throw new CantFindEx(baseFile.toString());
}
protected static void process_duliFiles(File baseFile, File destDir, int start, int end, String baseDir,
Consumer<Map> fileConsumer1) throws IOException {
if (baseFile.toString().contains("是印度最古老的一部法律文献"))
System.out.println("dbg");
String dir = baseFile.getParent();
String basenameBase = FilenameUtils.getBaseName(baseFile.getAbsolutePath());
String ext = FilenameUtils.getExtension(baseFile.getAbsolutePath());
String rltPath = FilenameUtilsT55.rltPath(dir, baseDir);
for (int i = start; i < end; i++) {
String f = dir + "\\" + basenameBase + "(" + i + ")." + ext;
String destFpath = destDir + "\\" + rltPath + "\\" + basenameBase + "(" + i + ")." + ext;
if (new File(f).exists()) {
Map paramM = Maps.newLinkedHashMap();
paramM.put("f", new File(f));
paramM.put("destFpath", new File(destFpath));
paramM.put("start", start);
paramM.put("end", end);
paramM.put("curIdx", i);
fileConsumer1.accept(paramM);
}
/// FileUtils.moveFile(new File(f), new File(destFpath));
// FileUtils.moveFileToDirectory(new File(f), destDir, true);
}
// File[] subfiles=new File(dir).listFiles();
// for (File subf : subfiles) {
//
// }
}
static void logCurfile(Path file, List<String> lines) {
Map m2 = Maps.newLinkedHashMap();
m2.put("dirlistFilename", file.toFile().getAbsolutePath());
m2.put("lines_size", lines.size());
m2.put("listSum", listSum);
NDC.push(JSON.toJSONString(m2));
MDC.put("dirlistFilename", file.toFile().getAbsolutePath());
MDC.put("lines_size", lines.size());
MDC.put("listSum", listSum);
logger.info(JSON.toJSONString(m2));
MDC.remove("lines_size"); // NDC.remove --> MDC.remove(key)
NDC.remove(); // 离开方法删除tag
}
private static void t1(String file) throws IOException {
// String file="D:\\00l3 sum doc s2018 until9 doc list.txt";
// file="C:\\Users\\Administrator\\Desktop\\sumdoclist\\00l3 sum doc all
// doc list.txt";
// file="";
List<String> li = FileUtils.readLines(new File(file), "utf8");
for (String f : li) {
// line=line.replaceAll("/", "__");
String zipname = FilenameUtilsT55.getZipName(f);
String filename =FilenameUtilsT55. getmainFilename(f);
String newFile = zipname + "__" + filename;
try {
FileUtils.writeStringToFile(new File("d:\\l4 sumdoc s20180901-1231 everthing index\\" + newFile),
"aaa");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(newFile);
}
}
}
Atitit 重复文件清理工具 按照文件名 目录 1. 原理, 1 1.1. If base filex exist dele other files 1 1.2. Get getStartIdex相关推荐
- 照片整理工具(日历相册, 重复文件清理, 手机照片同步, 图片尺寸缩减)
最近整理了多年以来积攒的照片,过程中没找到很合适的工具来解决需求,便自己动手写了一番.后面把总结的方法融入到代码中,添加了通过命令行运行的脚本,分享出来希望也能解决你的问题. GitHub: http ...
- Duplicate File Detective(电脑重复文件清理软件)官方正式版V7.0.78.0 | 电脑怎么扫描重复文件
Duplicate File Detective 是一款优秀的业务级电脑重复文件清理软件,也叫重复文件侦探,内置不断优化改进的智能多线程分析引擎和文件哈希计算器来计算任何文件的哈希值,能一次查找多个本 ...
- 非常好用的重复文件清理软件Tidy Up Mac
Tidy Up for Mac是市场为唯一的全功能重复文件清理工具,Tidy Up Mac版能够为用户进行重复文件深度查找和磁盘清理,为您清理出Mac电脑中的垃圾文件.有需要的朋友快来看看吧!不少用户 ...
- 轻松帮你清理重复文件的工具:Cisdem Duplicate Finder mac版
Cisdem Duplicate Finder Mac版是Mac平台上优秀的重复文件清理软件,可以轻松帮你扫描出Mac中的重复文件,快速释放内存,在Cisdem Duplicate Finder fo ...
- Mac重复文件清理软件—Cisdem Duplicate Finder for mac
对于Mac用户来说,Cisdem Duplicate Finder是一款出色的重复查找工具,可以检测和查找所有重复内容,并批量删除它们以快速释放外部/内部硬盘空间.所有重复的照片,音乐,文档,视频或其 ...
- windows7 系统盘 瘦身软件介绍: 冗余文件清理工具
注: 本人所写的文章只是经验分享,不代表本人所在的公司,也不是为了找工作,本人热爱和尊敬公司的每一位领导,谢谢. windows7 瘦身软件介绍: 冗余文件清理工具,可以清除c:\windows\in ...
- VSS版本控制信息文件清理工具
现在开发过程中都用到一些版本控制工具:CVS.SVN.VSS等等,这些工具在代码目录中存放了版本控制信息文件,基本上每个目录都有,所以给清理代码带来了不便. 开始时,都是通过资源管理器 ...
- vc6.0垃圾文件清理工具_干货 | 电脑清理宝典
是否有过盯着电脑却不见电脑响应, 最后拿电脑没办法的抓狂经历? 什么?电脑慢到你恨不得把它砸了? 且慢且慢, 说不定是电脑里的垃圾文件导致它速度变慢, 且听书先生讲讲清理电脑垃圾文件的方法. 宝典一: ...
- Duplicate Manager Pro for Mac(重复文件查找工具)破解版安装
1.Duplicate Manager Pro 简介 Duplicate Manager Pro 是 macOS 系统上一款重复文件查找工具,可以帮你在 Mac 电脑上查找出磁盘上面的重复文件,然后让 ...
- 重复文件清理软件:Umbrella for mac
Umbrella for mac破解版专为Mac用户设计的一款重复文件查找工具,可以帮助您可以查找重复文件,包含PDF,图像,电影等,同时 安全地删除或移动标记的重复项,需要的朋友欢迎来下载! Umb ...
最新文章
- 数据中心建设模式变革-- 如何采用EPC模式实现快速交付?
- [二叉树建树] 后序遍历与中序遍历建立二叉树
- android 讯飞语音评测,讯飞语音评测demo
- spring多个视图解析器_在Spring中配置多个View解析器
- MySQL 添加列,修改列,删除列 的SQL写法
- linux硬连接脚本,linux 硬链接和软链接深入理解
- php的数组排列函数,PHP实现的自定义数组排序函数与排序类示例
- 并注册烧写钩子 获取启动介质类型_鸿蒙OS开源代码精要解读之—— 系统服务框架子系统(服务启动)...
- IDEA运行多个实例
- 全网首发:ProGuard如何混淆多个包
- c语言编写ocr软件,开源OCR引擎Tesseract
- 6U_ VPX_ XC7VX690T_2TMS320C6678信号处理卡
- 考研高等数学第一讲手写笔记 函数、极限与连续
- java jshell_Java9特性预览——Jshell
- 马哥2018linux课程目录,马哥教育2018年Linux第30期视频教程
- [html+css+js] 小米官网首页制作
- 走进3D投影秀,感受艺术创意“无止境”…
- python调用r语言加载包错误_Python调用R语言
- Java习题练习:幸运数
- 目标检测和感受野的总结和想法