при попытке подсчитать, сколько подкаталогов есть в пути к файлу, что было бы лучшим способом сделать это?подсчет уровня вложенности в папке с файлом
Например, я хочу проверить, что файл file.txt в /a/b/c/d/file.txt имеет только 3 подкаталога между собой и корневой папкой. Есть ли способ сделать это, о котором я не слышал?
В настоящее время я использую метод подсчитать, сколько родительских каталогов есть вверх от file.txt делать что-то похожее на:
boolean lessThan3Subdirectories(File textFile){
File homeFile = new File (/a);
if (textFile.getParent()
.getParentFile()
.getParentFile()
.getParentFile()
!= homeFile){
return false;
} else {
return true;
}
Моя проблема этого метода состоит в том, что он жёстко, чтобы проверить 3 и всегда 3, но мне на самом деле все равно, сколько родительских каталогов требуется, чтобы добраться туда до тех пор, пока оно меньше 3. (/a/b/file.txt в порядке)
Моим другим вариантом было бы просто введите строку пути к файлу и подсчитайте количество раз «/» между файлом и домашней папкой. Проблема с этим методом, однако, заключается в том, что я не могу учитывать имена файлов, которые включают экранированные/(т.е.. "/")
Почему вы не можете использовать петлю? – CKing