Je ne peux pas supprimer un lien symbolique sur Android. Je ne peux pas avec File.delete()
et ni avec exec("rm " + verFile.getPath())
J'ai un lien symbolique
com.example.app/mydata/12345.ver --> com.example.app/lib/library.so
qui a été créé par
Runtime.getRuntime().exec(String.format("ln -s %s %s", target, link));
Après la mise à jour (téléchargement d'un build.apk différent depuis le web), je veux supprimer ce lien en
File verFile = new File(dataDir, verFile);
Log.w("MyApp", "Deleting file " + verFile.getPath());
if (verFile.exists()) Log.w("MyApp", "File exists!");
try {
Runtime.getRuntime().exec("rm " + verFile.getPath());
} catch( IOException ioex ) { Log.w("MyApp", "Failed to delete"); }
Je peux remplacer
Runtime.getRuntime().exec("rm " + verFile.getPath());
avec
verFile.delete()
mais cela n'a aucun effet (le fichier ne sera toujours pas supprimé).
De la adb logcat Je peux voir
W/MyApp (13298): Deleting file /data/data/com.example.app/mydata/12345.ver
W/MyApp (13298): File exists!
Mais le fichier 12345.ver est toujours là ! Il a les mêmes autorisations d'utilisateur/groupe que le reste de l'application (à l'exception de lib
qui est détenu par le system
utilisateur).
Un indice ?