我无法删除Android上的符号链接。不能与File.delete()
同时使用。{
exec("rm " + verFile.getPath())
我有一个符号链接
com.example.app/mydata/12345.ver --> com.example.app/lib/library.so
由
创建Runtime.getRuntime().exec(String.format("ln -s %s %s", target, link));
升级后(从网上下载不同的build.apk)我想通过
删除此链接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"); }
我可以替换
Runtime.getRuntime().exec("rm " + verFile.getPath());
与
verFile.delete()
但它没有效果(文件仍然不会被删除)。
从 adb logcat 我可以看到
W/MyApp (13298): Deleting file /data/data/com.example.app/mydata/12345.ver
W/MyApp (13298): File exists!
但文件12345.ver仍在那里!它与应用程序的其余部分具有相同的用户/组权限(lib
用户拥有的system
目录除外)。
有任何线索吗?
答案 0 :(得分:1)
我知道这有些晚了,但谷歌在试图解决类似问题的同时把我送到了这里。 任何删除特定符号链接的尝试都失败,并显示混乱消息“directory not empty” 我挖了一点,发现目标文件不存在。我创建了一个和rm工作: - )。
对我而言似乎是Android中的一个错误,但我对Android来说太新了,无法确定。