Android getExternalStorageDirectory不会返回任何文件

时间:2013-12-23 18:28:03

标签: java android

我是Android编程的新手 我正在尝试使用getExternalStorageDirectory()来获取我的nexus设备上的文件路径 但它根本不返回任何文件

代码:

File path = new File(Environment.getExternalStorageDirectory() +"");
path.mkdirs();
if (path.exists()) {
FilenameFilter filter = new FilenameFilter() {
            @Override
            public boolean accept(File dir, String filename) {
                File sel = new File(dir, filename);
                // Filters based on whether the file is hidden or not
                return (sel.isFile() || sel.isDirectory())
                    && !sel.isHidden();

            }
        };
String[] fList = path.list(filter);
// flist return null
}

2 个答案:

答案 0 :(得分:5)

在您的情况下,您可以通过执行以下代码来获取所有数据:

ArrayList<String> filesList = new ArrayList<String>();   
String sd_card = Environment.getExternalStorageDirectory().toString();
file = new File( sd_card ) ;       
File list[] = file.listFiles();
for( int i=0; i< list.length; i++) {
    filesList.add( list[i].getName() );
}

现在filesList将包含所有文件的列表,您可以根据需要使用它。

请不要忘记在清单中添加权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

答案 1 :(得分:2)

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>"添加到AndroidManifest.xml