有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

具有特定扩展名的java Android拾取文件(pdf和docx)

我用这个代码做视频

public void pickVideo()
{
    Intent pickVideoIntent = new Intent(Intent.ACTION_PICK,
        安卓.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);

    startActivityForResult(pickVideoIntent, PICK_VIDEO_ACTIVITY_REQUEST_CODE);
}
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        if (resultCode == RESULT_OK){
            switch (requestCode){
                case PICK_VIDEO_ACTIVITY_REQUEST_CODE:
                    Uri selectedVideo = data.getData();
                    videoPicked(videoUriToRealPath(selectedVideo));
                    break;
        .
        .
        .
        public String videoUriToRealPath(Uri videoUri){
            String[] proj = {MediaStore.Video.Media.DATA};
            Cursor cursor = getContentResolver().query(videoUri, proj, null, null, null);
            String videoPath = "";

            try{
                if (cursor != null){
                    int column_index = cursor.getColumnIndex(MediaStore.Video.Media.DATA);

                    if (cursor.moveToFirst()){
                        videoPath = cursor.getString(column_index);
                    }
                }
            }finally{
                cursor.close();
            }

            return videoPath;
        }

它正在工作。我想将选择文件\u活动\u请求\u代码设置为案例之一。我定义了它:

   public void pickFile()
    {
        Intent pickFileIntent = new Intent(Intent.ACTION_GET_CONTENT);
        pickFileIntent.setType("*/*");
        startActivityForResult(pickFileIntent, PICK_FILE_ACTIVITY_REQUEST_CODE );
    }
 protected void onActivityResult(int requestCode, int resultCode, Intent data){
            if (resultCode == RESULT_OK){
                switch (requestCode){
                case PICK_FILE_ACTIVITY_REQUEST_CODE:
                    Uri selectedFile = data.getData();
                    filePicked(fileUriToRealPath(selectedFile));
        .
        .
        .
        public String fileUriToRealPath(Uri fileUri){
            String[] proj = {MediaStore.Files.Media.DATA};
            Cursor cursor = getContentResolver().query(fileUri, proj, null, null, null);
            String filePath = "";

            try{
                if (cursor != null){
                    int column_index = cursor.getColumnIndex(MediaStore.Files.Media.DATA);

                    if (cursor.moveToFirst()){
                        filePath = cursor.getString(column_index);
                    }
                }
            }finally{
                cursor.close();
            }

            return filePath;
        }

实际上它不起作用。扩大PDF和。DOCX在我的文件中。如何修复它


共 (1) 个答案

  1. # 1 楼答案

    我想你需要搜索整个SD卡

    searchDir(Environment.getExternalStorageDirectory())

    public void searchDir(File dir){
        String docExt = ".doc";
        String pdfExt = ".pdf";
        File listFile[] = dir.listFiles();
    
        if (listFile != null){
            for (int i = 0; i < listFile.length; i++){
                if (listFile[i].isDirectory()){
                    searchDir(listFile[i]);
                }else{
                    if(listFile[i].getName().endsWith(docExt)){
                        //Do what ever u want
                    }else if(listFile[i].getName().endsWith(pdfExt)){
                        //Do what ever u want
                    }
                }
            }
        }
    }