2010-11-19 13 views
1

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ディレクトリを除く)。

ヒント?

+1

exec呼び出しで 'rm -f'を試しましたか? –

答えて

1

私はこれは幾分遅いと知っていますが、グーグルは私にここで同じような問題を解決しようとしています。 特定のシンボリックリンクを削除しようとすると、「ディレクトリが空でない」という紛らわしいメッセージで失敗しました。 少し深く掘り下げて、ターゲットファイルが存在しないことがわかりました。私は1つ作成し、RMは働いた:-)。

私はAndroidのバグのようですが、私は確かにAndroidにはあまりにも新しいです。

関連する問題