【问题标题】:How to select file from internal & external storage in andorid如何在android中从内部和外部存储中选择文件
【发布时间】:2015-04-01 07:11:00
【问题描述】:

您好,我正在尝试创建一个文件选择器来从设备中选择文件,然后将其上传到服务器。所以我尝试了几个相同的示例,但每次我坚持它只显示设备的内部存储驱动器而不是外部存储驱动器贮存。 我尝试了这里的示例File Explorer Example

但同样 i 只显示内部 sdcard。当

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    currentDir = new File("/sdcard/");
    fill(currentDir); 
}

如果我更改为 mnt,则在按下后退按钮后显示选项外部存储..

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    currentDir = new File("/mnt/");
    fill(currentDir); 
}

我想要的是,当单击浏览按钮时,它应该根据设备配置仅显示两个选项,一个是内部存储,另一个是外部存储。即如果它有这些驱动器。

提前谢谢....

【问题讨论】:

  • 每台设备都有内部和外部存储。如果存在 micro SD 卡,我们称之为可移动存储。所以可以有三种存储方式。大多数情况下,您无法找到通往可移动媒体的简单路径。请不要再创建一个文件管理器来限制用户可以从文件系统中看到的内容。 (我恨他们)。只需从 /mnt 或 /storage 开始,并允许所有到 /.
  • /storage/ 工作知道它显示了内部和外部存储设备。谢谢@greenapps
  • 并非在所有设备上!你又一次错过了可移动存储。微型 SD 卡和 USB 存储。

标签: android storage


【解决方案1】:

用于外部存储。

String path = null;

    if (Build.VERSION.SDK_INT < 8) {
        path = root.getAbsolutePath() + "/Android/data/com.packagename/files/";
    } else {
        File file = getExternalFilesDir(null);//getAbsolutePath();
        if (file == null) {
            path = root.getAbsolutePath() + "/Android/data/com.packagename/files/";
        } else {
            path = file.getAbsolutePath();
        }
    } 

对于内部存储,您可以使用

FileInputStream stream = context.openFileInput("sp_key_file");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 2015-08-17
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多