Android获取U盘路径下的所有文件

package com.example.usbvideotest;

import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity {
    private static final String TAG = "MainActivity";
    List<String> list = new ArrayList<>();

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        handlePermission();
        Usb();
    }

    //动态申请权限
    private boolean handlePermission() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            Log.d(TAG, "手机系统版大于等于AndroidM 先申请权限");
            ArrayList<String> permissions = new ArrayList<>();
            if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
            }
            if (permissions.size() != 0) {
                requestPermissions(permissions.toArray(new String[permissions.size()]), 0);
                return false;
            }
        }
        return true;
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        Log.d(TAG, "WelcomeActivity收到权限通知:" + requestCode);
    }

    private void Usb() {
        //获取指定路径下的所有文件
        try {
            // /storage/7BE3-1B00是U盘路径
            list = getFilesAllName("/storage/7BE3-1B00");
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (list != null) {
            for (String listname : list) {
                Log.e(TAG, "listname :" + listname);
                //判断文件是不是MP4后缀
//                if (listname.endsWith(".mp4")) {
//                    //获取路径下最后一个‘/’后的坐标
//                    int lastindex = listname.lastIndexOf("/");
//                    //获取具体文件名称
//                    String name = listname.substring(lastindex + 1, listname.length());
//                    //获取到想要的名称后,去干你想干的事
//                    //dosomething
//                }
            }
        }
    }

    public static List<String> getFilesAllName(String path) {
        Log.e("path", path);
        File file = new File(path);
        Log.e("file", file + "");
        File[] files = file.listFiles();
        //没有权限files会变成null
        Log.e("files", files + " ");
        if (files == null) {
            Log.e("error", "没有权限");
            return null;
        }
        List<String> s = new ArrayList<>();
        for (int i = 0; i < files.length; i++) {
            s.add(files[i].getAbsolutePath());
        }
        return s;
    }
}

猜你喜欢

转载自blog.csdn.net/m0_58241002/article/details/124631082