Как избежать Android Symboli c Цикл ссылок - PullRequest
0 голосов
/ 10 января 2020

Возможно ли в 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, поэтому при необходимости можно посмотреть в этом контексте, и там можно найти больше кода.

...