File.delete()不会删除Android上的符号链接?

时间:2010-11-19 15:49:27

标签: android

我无法删除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目录除外)。

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

我知道这有些晚了,但谷歌在试图解决类似问题的同时把我送到了这里。 任何删除特定符号链接的尝试都失败,并显示混乱消息“directory not empty” 我挖了一点,发现目标文件不存在。我创建了一个和rm工作: - )。

对我而言似乎是Android中的一个错误,但我对Android来说太新了,无法确定。