2012-01-12 35 views
9

Tôi đang cố gắng viết một ứng dụng trong Android sẽ điền một trình quay số có tên tệp được tìm thấy trên thẻ SD với các tiện ích mở rộng cụ thể. Tôi có thể nhận được nó cho đến nay để cư các spinner với các tập tin chính xác, nhưng con đường được hiển thị là tốt. Bất cứ ai có thể XIN cho tôi biết làm thế nào để có được ONLY tên tập tin của một tập tin cụ thể trong một thư mục trên thẻ SD trong Android?Lấy tên tập tin từ thư mục trong Android

Cảm ơn bạn

Trả lời

23
File sdCardRoot = Environment.getExternalStorageDirectory(); 
File yourDir = new File(sdCardRoot, "path"); 
for (File f : yourDir.listFiles()) { 
    if (f.isFile()) 
     String name = f.getName(); 
     // Do your stuff 
} 

Có một cái nhìn tại Environment trang để biết thêm.

+0

Có cách nào để thực hiện tương tự trong JNI không? –

+0

mã này đang cung cấp cho NPE. Kiểm tra câu trả lời của tôi dưới đây. Điều đó làm việc cho tôi. BTW cộng 1 cho câu trả lời hay! –

0

bạn có thể xử lý các chuỗi theo thứ tự ngược (phải sang trái), việc tìm kiếm các dấu gạch chéo đầu tiên, sau đó cắt chuỗi vào thời điểm đó và lấy phần ngoài cùng bên phải của chuỗi như tên tập tin?

0

phương pháp sử dụng getName() của đối tượng file:

file.getName(); 
2

Hãy thử mã dưới đây

File sdCard = Environment.getExternalStorageDirectory(); 
File dir = new File(sdCard, "yourpath"); 
for (File f : dir.listFiles()) { 
    if (f.isFile()) 
     String name = f.getName(); 
     // do whatever you want with filename 
} 
0
File filePath= new File(File Address); 
File[] fileList = filePath.listFiles(); 
String name = fileList [0].getName().toString(); 
+0

không hữu ích lắm nếu không có giải thích và không giải quyết câu hỏi cụ thể (lọc theo tên/tiện ích mở rộng) –

+0

ok, cảm ơn bạn –

0

Trên câu trả lời được đưa ra vô con trỏ ngoại lệ trong trường hợp của tôi. Mã sau hoạt động cho tôi:

File yourDir = new File(Environment.getExternalStorageDirectory().getPath() + "/WhatsApp/Databases"); 
    for (File f : yourDir.listFiles()) { 
     if (f.isFile()) 
      name = f.getName(); 
     // Do your stuff 
} 
Các vấn đề liên quan