2013-07-03 35 views
7

Các uri tập tin được biết, chẳng hạn nhưCách kiểm tra xem tệp uri đã biết có tồn tại trong bộ nhớ Android không?

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

tôi muốn kiểm tra xem tập tin này có thể mở hoặc không ở chế độ nền, làm thế nào để làm gì?

+0

Xác định "ở chế độ nền"? – fge

+0

@fge Có thể không chặn luồng chính. – johnchen902

+0

Câu hỏi của bạn không rõ ràng, bạn có muốn kiểm tra xem một gói ứng dụng có mở hay không bất kể nó được mở ra như thế nào, hoặc bạn có muốn kiểm tra xem nó có đang mở bằng một sợi riêng biệt không? –

Trả lời

20

Kiểm tra xem một tập tin của một con đường tồn tại như thế này:

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

Hãy nhớ để loại bỏ một cái gì đó như "file: //" vv nếu không sử dụng:

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

Ngoài ra bạn có để đặt quyền thích hợp cho ứng dụng của bạn trong AndroidManifest.xml để truy cập vào sdcard:

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

Bắt đầu bằng cách giải nén tên tập tin sử dụng URI:

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 

Đó là khuyến khích để sử dụng URI ở đây, vì nó sẽ chăm sóc giải mã tất cả các không gian có thể/nhân vật bất hợp pháp tại các URI, nhưng quy phạm pháp luật trong tên tập tin.

Các vấn đề liên quan