如何从Android设备中检索不同类型的外部文件?

How do I retrieve different types of external files from android device?

提问人:pwhited-7 提问时间:12/6/2022 更新时间:12/6/2022 访问量:39

问:

我一直在到处寻找如何从外部存储中检索文件并能够读取它。我希望能够做的是,当我打开android应用程序时,会有一个按钮,按下该按钮时,我可以进入我的手机文件并选择CSV文件。我不想得到一个预先选择的文件,我希望每次都能选择不同的文件。有了这个文件,我只想能够从中读取或将其下载到内部存储。我对android IO不是很熟悉,所以希望这是有道理的。

这是我到目前为止的代码,它获取了一个预选文件(仅使用预选文件作为示例)并尝试读取该文件。到目前为止,它失败并打印出 Exception 块代码。

public class MainActivity extends AppCompatActivity {

private String filename = "/storage/emulated/0/Download/example.csv";
Scanner sc = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.READ_EXTERNAL_STORAGE},
            PackageManager.PERMISSION_GRANTED);
}

public void buttonOpenFile(View view){

    Context context = getApplicationContext();

    File appSpecificExternalDir = new File(context.getExternalFilesDir(null), filename);

   try {
       Scanner sc = new Scanner(appSpecificExternalDir);
       sc.useDelimiter(",");
       while (sc.hasNext()){
           System.out.println(sc.next());
       }
   }catch (Exception e){
       System.out.println("File not valid");
   }

}
}
android 文件 io 存储 android-external-storage

评论

0赞 CommonsWare 12/6/2022
用/。ACTION_OPEN_DOCUMENTActivityResultContracts.OpenDocument
0赞 blackapps 12/6/2022
您不需要任何许可即可执行此操作。
0赞 TIMBLOCKER 12/6/2022
这回答了你的问题吗?尝试使用 Android Studio 从内部存储的下载文件夹中读取.csv文件

答: 暂无答案