当试图计算文件路径中有多少个子目录时,最好的方法是什么?
例如,我想检查/a/b/c/d/file.txt中的file.txt在其自身和根目录之间只有3个子目录。有没有办法做到这一点,我没有听说过?
目前我正在使用一种方法通过执行类似的操作来计算file.txt中有多少个父目录:
bot.sendDocument(msg.chat.id, "BQADBAADAgAD8jBJUZjgAdwyxsADAg")
我对这种方法的问题在于它是硬编码来检查3并且总是3但我实际上并不关心只要它少于3就可以到达那么多父目录。(/ a /b/file.txt正常)
我的另一个选择是获取文件路径字符串并计算次数" /"出现在文件和主文件夹之间。但是,该方法存在的问题是我无法解释包含转义/的文件名(即" /")
答案 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时,只检查该级别包含您的文件。