2015-04-01 64 views
0

嗨我想创建一个文件选择器从设备中选择文件,然后将其上传到服务器。所以我尝试了一些相同的示例,但每次我都坚持它仅显示设备的内部存储驱动器而非外部存储器。 我试过这里的例子File Explorer Example如何在andorid中从内部和外部存储中选择文件

但我只显示内部SD卡。当

@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); 
} 

我想是时候点击浏览按钮,它应该显示只有两个选项的根据设备配置一个内部存储器和第二个外部存储器。即如果它有这些驱动器。

在此先感谢....

+0

参考http://developer.android.com/guide/topics/data/data-storage.html#filesInternal – 2015-04-01 07:13:52

+1

每个设备都有内部和外部存储。如果存在微型SD卡,我们称之为可移动存储。所以可以有三种存储。大多数情况下,您找不到可移动媒体的路径。请不要再制作另一个文件管理器来限制用户可以从文件系统中看到的内容。 (我恨他们)。只需从/ mnt或/ storage开始,并允许所有/到/。 – greenapps 2015-04-01 08:57:12

+0

/存储/工作知道它显示内部以及erternal存储设备。谢谢@greenapps – 2015-04-01 09:07:07

回答

0

对于外部存储。

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"); 
相关问题