将文件夹树与预定义的文件夹树格式匹配

时间:2017-02-01 19:36:28

标签: java

假设我有一个预定义的子文件夹树格式,如---

 /test
    /test/folder1
   /test/ folder2
   /test/ folder3
    /test/folder1/file1.txt
    /test/folder1/file2.txt
    /test/folder2/file3.txt
    /test/folder3/folder4
    /test/folder3/folder4/file4.txt

现在我想匹配真正的测试文件夹树,就像预定义的树一样。如果发现任何不匹配,则应检测到它。它是如何通过java完成的。 表示测试文件夹的层次结构与上述层次结构一样。如果发现任何不匹配的情况如--within folder3 / folder4“file4.txt”文件丢失,则应检测到它。当所有文件和子文件夹都出现在主测试文件夹下时,它将不显示任何内容,否则它将显示为---- folder3 / folder4

中缺少file5.txt

1 个答案:

答案 0 :(得分:0)

嗯,这段代码应该给你正确的提示。如果我找到了你,你有一个列表/路径集合,你要检查它们是否存在。因此,采用以下方法,遍历您的List / Collection并让" path"是你要检查的每一条路径。它将始终返回路径是否存在(适用于路径和包含文件的路径)。

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;

public class PathExistanceTester {

    public static void main(String args[]) {

        ArrayList<String> paths = new ArrayList<>();
        // symbolic method name. Here you have to instantiate your list of paths.
        paths = getPathMyTree(); 

        for(String p : paths)
        {
            // p is supposed to look like "/test/folder1/test.txt" or "/test/folder1"
            // depending on your operating system
            Path path = Paths.get(p);

            if(Files.exists(path))
            {
                // do nothing
            }
            else
            {
                // alert
            }
        }
    }
}

我希望这就是你要找的东西。