计算文件夹中的嵌套级别

时间:2017-02-19 07:34:40

标签: java file nested filepath subdirectory

当试图计算文件路径中有多少个子目录时,最好的方法是什么?

例如,我想检查/a/b/c/d/file.txt中的file.txt在其自身和根目录之间只有3个子目录。有没有办法做到这一点,我没有听说过?

目前我正在使用一种方法通过执行类似的操作来计算file.txt中有多少个父目录:

bot.sendDocument(msg.chat.id, "BQADBAADAgAD8jBJUZjgAdwyxsADAg") 

我对这种方法的问题在于它是硬编码来检查3并且总是3但我实际上并不关心只要它少于3就可以到达那么多父目录。(/ a /b/file.txt正常)

我的另一个选择是获取文件路径字符串并计算次数" /"出现在文件和主文件夹之间。但是,该方法存在的问题是我无法解释包含转义/的文件名(即" /")

1 个答案:

答案 0 :(得分:0)

确定。这是你可以写一个递归函数的东西。我可以给你一个骨架。此函数将返回文件存在的深度。

        int recurFunc(String path, String fileNameToCheck){

            //1. count all the files in given directory
            //2. Write a for loop for each file checking if its a directory or file.
            //3. if its a directory call recurFunc with directory name appended. (return 1 + recurFunc(directorypath)). This will give you the depth
            //4. if its a file check if its your required file or not
            //5. if its your file return 0;else skip 

        }

此外,如果您想将搜索限制为3级,只需将级别传递给recurFunc(String path,String fileName,int level),当进入目录时,将级别降低1.当level为0时,只检查该级别包含您的文件。