2013-07-03 29 views
7

ファイルURIは、このような既知のuriファイルがAndroidストレージに存在するかどうかを確認する方法は?

`file:///mnt/sdcard/Download/AppSearch_2213333_60.apk` 

として、知られている私は、このファイルが実行する方法、バックグラウンドで開いたりすることができないかどうかを確認したいですか? URIを使用してファイル名を抽出することにより

+0

「バックグラウンドで」を定義しますか? – fge

+0

@fgeメインスレッドをブロックしていない可能性があります。 – johnchen902

+0

あなたの質問は不明です。開かれた方法に関係なくapkが開いているかどうかを確認したいのですか、別のスレッドを使って開かれているかどうか確認したいのですか? –

答えて

20

チェックはパスのファイルは次のように存在している場合:心に留めておいてください

File file = new File("/mnt/sdcard/Download/AppSearch_2213333_60.apk"); 
if (file.exists()) { 
//Do something 
} 

は次のようなものを削除するには、「ファイル://」などそれ以外の場合は使用します。また、あなたが持っている

File file = new File(URI.create("file:///mnt/sdcard/Download/AppSearch_2213333_60.apk").getPath()); 
if (file.exists()) { 
    //Do something 
} 

をAndroidManifest.xmlでアプリの適切なアクセス許可を設定してsdcardにアクセスする:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
1

スタート:

final String path = URI.create("file:///mnt/sdcard/Download/AppSearch_2213333_60.apk") 
    .getPath(); // returns the path segment of this URI, ie the file path 
final File file = new File(path).getCanonicalFile(); 
// check if file.exists(); try and check if .canRead(), etc 

それがファイル名にすべての可能なスペース/ URIの中に不正な文字が、法律上の復号化の世話をしますので、ここにURIを使用することをお勧めします。

関連する問題