首页 > 解决方案 > 如何定位特定文件夹以在文件选择器中打开

问题描述

我正在尝试制作一个应用程序来查看文件夹中的文件(外部存储上的应用程序存储文件夹位于 /storage/emulated/0/Android/data/app_name)

但是我无法查看该文件夹。当用户单击“设置根路径”按钮时,我想自动导航到该文件夹​​不执行任何操作。

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.jaiselrahman.filepicker.activity.FilePickerActivity;
import com.jaiselrahman.filepicker.config.Configurations;
import com.jaiselrahman.filepicker.model.MediaFile;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    Button btFile;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btFile = findViewById(R.id.button);

        btFile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, FilePickerActivity.class);
                intent.putExtra(FilePickerActivity.CONFIGS,
                        new Configurations.Builder()
                                .setCheckPermission(true)
                                .setShowFiles(true)
                                .setShowImages(false)
                                .setShowAudios(false)
                                .setShowVideos(false)
                                .setMaxSelection(1)
                                .setSuffixes("txt","pdf","doc","docx")
                                .setSkipZeroSizeFiles(true)
                                .setRootPath("/storage/emulated/0/Android/data/")
                                .build());
                startActivityForResult(intent,102);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK && data !=null){
            ArrayList<MediaFile> mediaFiles = data.getParcelableArrayListExtra(
                FilePickerActivity.MEDIA_FILES
            );
            String path = mediaFiles.get(0).getPath();
            if(requestCode == 102){
                String s = "File Path : " + path;
                Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
            }
        }
    }
}

标签: javaandroidfilepath

解决方案


推荐阅读