首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 列出 SD 卡目錄文件:File.listFiles 配合 ArrayAdapter

     編輯:程式設計綜合問答

核心代碼

List items = new ArrayList<>();
List paths = new ArrayList<>();

File dir = Environment.getExternalStorageDirectory(); // /sdcard
File[] files = dir.listFiles();
if (files != null) {
    for (File f : files) {
        paths.add(f.getAbsolutePath());
        items.add(f.getName() + (f.isDirectory() ? "/" : ""));
    }
}

ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);

listView.setOnItemClickListener((parent, view, position, id) -> {
    File selected = new File(paths.get(position));
    if (selected.isDirectory()) {
        // 遞歸列出子目錄,更新 adapter
    } else {
        // 打開文件
    }
});

權限聲明

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

Android 6.0+ 需動態申請權限。

優化建議

  • 大目錄異步加載(Loader/AsyncTask/协程),避免 UI 卡頓。
  • 2. 使用 DocumentFile (Storage Access Framework) 適配 Android 10+ 分區存儲。 3. 文件圖標根據 MIME 類型顯示(MimeTypeMap)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved