Androidでシンボリックリンクを削除できません。 exec("rm " + verFile.getPath())
File.delete()はAndroid上でシンボリックリンクを削除しませんか?
とFile.delete()
ともないと私はシンボリックリンクアップグレード後
Runtime.getRuntime().exec(String.format("ln -s %s %s", target, link));
によって作成された
com.example.app/mydata/12345.ver --> com.example.app/lib/library.so
(ウェブ異なるbuild.apkをダウンロードしてください)を持つことができませんIこのリンクを削除するには
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"); }
私は
verFile.delete()
で
Runtime.getRuntime().exec("rm " + verFile.getPath());
を置き換えることができますが、それは(ファイルがまだ削除されません)は効果がありません。
のadb logcatから私は
W/MyApp (13298): Deleting file /data/data/com.example.app/mydata/12345.ver
W/MyApp (13298): File exists!
しかし、まだそこにある12345.verファイルを見ることができます!これは、他のアプリケーションと同じユーザ/グループ権限を持ちます(system
ユーザが所有するlib
ディレクトリを除く)。
ヒント?
exec呼び出しで 'rm -f'を試しましたか? –