Возможно ли в Android иметь SymLink (Symboli c Link), которая ведет к точке в дереве каталогов выше, чем начальный каталог, что приводит к al oop? Например:
/
Parent
Child
SymLink to directory '/Parent'
Это будет l oop, если вы попытаетесь сканировать его с помощью File.listFiles()
.
Если так, как можно избежать этого, кроме как не следовать SymLinks?
Конечно, мы могли бы проверить, указывает ли ссылка на родительский каталог, но более сложные структуры могут нарушить это:
/
Parent1
SymLink to /Parent2
Parent2
SymLink to /Parent1
Прямо сейчас, лучшая идея, которую я имею, состоит в том, чтобы отслеживать все канонические каталоги уже просканированы, и отказываются сканировать каталог, если он уже просканирован, что кажется чрезмерным.
У кого-нибудь есть какие-нибудь лучшие решения?
NB: это часть моей попытки найти решение для Сканирования Android Файловая система застревает в возможном SymLink l oop, поэтому при необходимости можно посмотреть в этом контексте, и там можно найти больше кода.