zoukankan      html  css  js  c++  java
  • 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

     

    1. 原理,
      1.  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

     

     

     

      1. 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;

     

      1. 循环执行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);

     

    1. 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);

    }

    }

     

    }

     

     

     

  • 相关阅读:
    Win10家庭版、专业版、企业版、教育版各版本功能区别对照表
    BaseDAL最牛数据层基类2
    C# 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)
    IIS下众多网站,如何快速定位某站点日志在哪个文件夹?
    【进阶技术】一篇文章搞掂:OAuth2
    【进阶技术】一篇文章搞掂:RibbitMQ
    【系统架构理论】一篇文章搞掂:设计模式
    【前端技术】一篇文章搞掂:WeX5
    【c#技术】一篇文章搞掂:Newtonsoft.Json Json.Net
    【Java架构:持续交付】一篇文章搞掂:Jenkins
  • 原文地址:https://www.cnblogs.com/attilax/p/15197241.html
Copyright © 2011-2022 走看看