Как проверить, находятся ли два пути в одной точке монтирования? - PullRequest
5 голосов
/ 13 ноября 2011

Мне нужно переместить файл из одного каталога в другой в файловой системе Android. Как программно проверить, находятся ли два пути в одной точке монтирования?

Причина, по которой я хочу это знать, заключается в том, что если они есть, нам нужно скопировать биты вместо использования File.rename (newPath) .

Примеры, когда пути находятся в разных точках монтирования:

  • Пользователь хочет переместить файл из внутреннего хранилища во внешнее.

  • Пользователь хочет переместить файл из / sdcard / files в / sdcard / external_sd / files на устройстве samsung.

Ответы [ 2 ]

5 голосов
/ 13 ноября 2011

Звоните File.rename.Если это удается, они находятся на одной точке монтирования.

2 голосов
/ 13 ноября 2011

Один из способов определить, на какой файловой системе находится файл, в приложении Android:

  • получить канонический путь к файлу, вызвав для него File.getCanonicalPath ().

  • , затем получите список смонтированных в настоящее время файловых систем и пути их точек монтирования из / proc / mounts

  • и найдите, какой путь точки монтирования является наиболее полным совпадением строкдля канонического пути к рассматриваемому файлу это должно дать вам точку монтирования / файловую систему файла.

Сравнить результаты из двух файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...