使用java跳过重复文件

时间:2015-12-17 05:55:53

标签: java

有人可以帮助我跳过我的代码中包含“read”扩展名的文件吗?

我的文件夹中有两个文件:

  • 123.csv
  • 123.csv.read

执行后,每个csv文件都转换为“.csv.read”,但如果再次出现相同的文件,则应跳过该文件。

就像这个文件(123.csv.read)已经处理好了,所以如果同一个新文件(123.csv)出现,我想跳过那个文件。

在下面的代码中,处理完123.csv文件后,该文件夹只有一个文件123.csv.readbreak表现不像我期望的那样。

context.Str = ((String)globalMap.get("tFileList_1_CURRENT_FILEPATH"));

String extension = context.Str.substring(context.Str.lastIndexOf(".") + 1);

if (extension.equals("read"))
{
    break;
}
else {
    System.out.println("Good File to Process");
}

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

例如123.csv文件再次出现,然后检查这是否存在于读取文件夹

if(!new File(123.csv+".read").exist()) { 
      // if this file is not exist, then it means that this has not been processed
      // process the file
} else {
      // do some other staff
}

编辑或者你可以试试这个

public static void main(String[] args) throws Exception {
        File dir = new File("your_path");
        File[] processedFiles = dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.getName().contains("read");
            }
        });
        List<File> files = Arrays.asList(processedFiles);
        File[] noneProcessedFiles = dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return !pathname.getName().contains("read");
            }
        });

        for (File file : noneProcessedFiles) {
            if (!files.stream().findAny().get().getName().contains(file.getName())) {
                // process the file....
                System.out.println("Not found ... " + file.getName());
            } else {
                // do some other staff....
                System.out.println("Fount the file");
            }
        }
    }

答案 1 :(得分:0)

public static void listFile(final String folder, final String ext) {

        ExtFilter filter = new ExtFilter(ext);
        File dir = new File(folder);

        if (dir.isDirectory() == false) {
            System.out.println("Directory does not exists : " + FindFileExtension.FILE_DIR);
            return;
        }

        // list out all the file name and filter by the extension
        String[] list = dir.list(filter);

        if (list.length == 0) {
            System.out.println("no files end with : " + ext);
            return;
        }

        for (String file : list) {
            String temp = new StringBuffer(FindFileExtension.FILE_DIR).append(File.separator).append(file).toString();
            System.out.println("file : " + temp);
            // do your stuff here this file is not processed
        }



    }

    public static class ExtFilter implements FilenameFilter {

        private String ext;

        public ExtFilter(final String ext) {
            this.ext = ext;
        }

        public boolean accept(final File dir, final String name) {
            return (name.endsWith(this.ext));
        }
    }

你可以做那样的事情,它可能对你有帮助