Подтвердить что ты не робот

Создание жестких ссылок и Symlinks в Android

Я создаю приложение, в котором я хотел бы использовать hardlinks и symlinks в файловой системе внешней памяти Android. Я пробовал использовать команды

Os.link("oldpath", "newpath");
Os.link("oldpath", "newpath");

Однако, когда я пытаюсь это сделать, я получаю эту ошибку:

link failed: EPERM (Operation not permitted)

Это заставляет меня думать, что вам нужен root-доступ, хотя я видел, что другие люди делают то же самое, и я не думаю, что они будут иметь эти команды, если они нуждаются в корне. Любые идеи?

4b9b3361

Ответ 1

Призыв к Os.link терпит неудачу, потому что Android использует файловую систему FAT32 по умолчанию для внешнего хранилища. Файловая система FAT32 не поддерживает жесткие ссылки и софт-ссылки, поэтому вы получаете операцию с недопустимой ошибкой.

EPERM Файловая система, содержащая oldpath и newpath, не поддерживает               создание жестких ссылок.

Вы можете прочитать дополнительную информацию о системном вызове link здесь

Кроме того, вы не можете фальсифицировать жесткие ссылки или программные ссылки на FAT32 точно. А также обратите внимание, что для создания жесткой ссылки в Android требуется разрешение root.