我很高興閱讀和寫入預設文件,並可以手動填充列表視圖,但我希望有一個官方(或不)文件瀏覽器,我錯過了,或其他更優雅的解決方案,向用戶展示一個目錄列表,並讓他們選擇一個文件。從sd卡上(目錄)獲取文件列表的好方法是什麼?
7
A
回答
18
final String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
File[] files = Environment.getExternalStorageDirectory().listFiles();
} else {
...
}
17
File fileList = new File("/sdcard");
if (fileList != null){
File[] filenames = fileList.listFiles();
for (File tmpf : filenames){
//Do something with the files
}
}
}
是另一種方法,你可以嘗試
+3
看起來像它會工作,但它最好使用 Environment.getExternalStorageDirectory() 在 文件的fileList =新的文件( 「/ SD卡」); 萬一被稱爲「sdcard」以外的情況 – Chozabu 2010-09-15 16:47:33
0
代碼:從外部存儲到上市的ListView android系統中的所有音樂文件或文檔文件或視頻文件,圖像,。
ArrayList<String> filenames;
ArrayAdapter<String> adapter;
// onCreate方法
songlist = findViewById(R.id.songlist); //songlist is ListView widget
filenames = new ArrayList<>();
getMusic(); // music files funtions
adapter=new ArrayAdapter<>(YourActivity.this, android.R.layout.simple_list_item_1, filenames);
songlist.setAdapter(adapter);
// getMusic()是用於從外部存儲獲取和過濾所有音樂文件的方法
private void getMusic() {
File path = Environment.getExternalStorageDirectory();
String filename ;
Queue<File> files = new LinkedList<>(); //Linklist
files.addAll(Arrays.asList(path.listFiles())); //adding all files of path in linklist
while (!files.isEmpty()){
File file = files.remove();
if (file.isDirectory()){
files.addAll(Arrays.asList(file.listFiles()));
}
else if (file.getName().endsWith(".mp3")){ //filtering files
filename = file.getName(); // according to their extension
filenames.add(filename); //filenames is string ListArray
}
else if (file.getName().endsWith(".ogg")){
filename = file.getName();
filenames.add(filename);
}
else if (file.getName().endsWith(".amr")){
filename = file.getName();
filenames.add(filename);
}
else if (file.getName().endsWith(".wav")){
filename = file.getName();
filenames.add(filename);
}
else if (file.getName().endsWith(".wma")){
filename = file.getName();
filenames.add(filename);
}
else if (file.getName().endsWith(".flac")){
filename = file.getName();
filenames.add(filename);
}
}
}
只是改變像(.MP3,.WAV),以 .your_file_extension
相關問題
- 1. 什麼是根目錄的SD卡
- 2. 無法從SD卡獲取文件名
- 3. 無法寫入SD卡上的文件(是一個目錄)
- 4. 什麼是從目錄獲取csv文件的最佳方式?
- 5. 如何獲得SD卡上所有目錄的列表?
- 6. 獲取SD卡中的文件夾和文件的列表
- 7. 獲取上下文的更好方法是什麼?
- 8. C++什麼是從文本文件讀取的好方法?
- 9. 從SD卡文件獲取apk信息
- 10. 從SD卡獲取所有文件
- 11. SD卡上的目錄中的文件數是否有限制?
- 12. 什麼是獲取文件大小的好方法?
- 13. 從SD卡讀取文件
- 14. SD卡目錄
- 15. 確定Android上SD卡上目錄大小的最快方法
- 16. 列表從SD卡
- 17. 如何從列表視圖中的SD卡文件夾中獲取文件
- 18. 獲取的NullPointerException()從SD卡
- 19. 獲取SD卡上特定目錄的內容
- 20. 什麼是從Ruby中的URL獲取文件名的好方法?
- 21. Android的 - API 23無法獲取USB/SD卡目錄
- 22. 什麼是從用戶主文件夾獲取user_id的好方法
- 23. 爲什麼無法獲取我的目錄中的文件列表?
- 24. 什麼是保存播放列表項目的更好方法?
- 25. 什麼是在Mac上獲取桌面通知的好方法?
- 26. 獲取價值SD卡的文件
- 27. 從列表視圖中刪除SD卡上的文件
- 28. 文件從SD卡
- 29. 在Android設備上獲取sd卡目錄
- 30. 什麼是記錄最好的方法?
排序的字符串值!我需要的命令是:path.list(); path.listFiles();和dialog.setItems(pathlist); - 甚至沒有需要列表視圖:) – Chozabu 2010-09-15 16:51:50