2017-07-04 6 views
12

Je crée une application dans laquelle je voudrais utiliser des liens physiques et des liens symboliques dans le système de fichiers de la mémoire externe Android. Je l'ai essayé d'utiliser les commandesCréation de liens physiques et de liens symboliques dans Android

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

Cependant, lorsque je tente, je reçois cette erreur:

link failed: EPERM (Operation not permitted) 

Cela me fait penser que vous avez besoin d'un accès racine, bien que je l'ai vu d'autres personnes font même chose, et je ne pense pas qu'ils auraient ces commandes si elles avaient besoin de root. Des idées?

+1

Dans quel chemin tentez-vous de créer un lien physique? –

+0

Je pense que vous devriez vérifier les étapes à partir d'ici https://stackoverflow.com/a/30387667/3800377 –

+0

@KamilMahmood J'essaie de le créer sur le stockage externe –

Répondre

10

L'appel à Os.link échoue car Android utilise le système de fichiers FAT32 par défaut pour le stockage externe. Le système de fichiers FAT32 ne prend pas en charge les liens physiques et les liens logiques, c'est pourquoi vous obtenez une erreur d'opération non autorisée.

EPERM The filesystem containing oldpath and newpath does not support the creation of hard links.

Vous pouvez lire plus d'informations sur lien appel système here

De plus vous ne pouvez pas faux liens durs ou mous liens sur FAT32 avec précision. Et notez également que pour créer un lien dur dans Android nécessite une autorisation root.

+0

Y a-t-il un moyen de créer un lien physique ou quelque chose de similaire pour mon usage, ou mon cas est-il devenu sans objet? @KamilMahmood –

+0

@AshwinKudva J'ai mis à jour la réponse –