Android 简单文件管理器
开发环境Android studio 4.1.2
运行环境 api 22
ps api 23及以上需动态添加sd卡权限,静态添加无效
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
package com.example.file_manage;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 实现文件管理器功能
* 2021、3、29
* 功能:点击文件夹,进入下一级;点击返回按钮,回到上一级,如果当前是根目录,则退出activity;
*/
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
TextView pathTv;
ImageButton backBtn;
ListView fileLv;
File currentParent;//父目录
File[] currentFiles; //当前文件夹的所有文件
File root; //sd卡根目录
// 用于动态添加权限
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pathTv=findViewById(R.id.id_tv_filepath);
backBtn=findViewById(R.id.id_btn_back);
fileLv=