在Android中从目录获取文件名

10

我想使用特定扩展名的文件填充一个下拉框。我已经成功地用正确的文件填充了下拉框,但是路径也被显示出来。

有人可以告诉我如何仅获取SD卡上特定目录中特定文件的文件名吗?

6个回答

27
File sdCardRoot = Environment.getExternalStorageDirectory();
File yourDir = new File(sdCardRoot, "path");
for (File f : yourDir.listFiles()) {
    if (f.isFile())
        String name = f.getName();
        // Do your stuff
}

查看Environment页面以获取更多信息。


有没有办法在JNI中做同样的事情? - Romantic Electron
这段代码出现了NPE(NullPointerException)。请检查我的答案。对我有用。顺便赞一个,回答得很好! - user6649667

3

尝试下方代码

File sdCard = Environment.getExternalStorageDirectory();
File dir = new File(sdCard, "yourpath");
for (File f : dir.listFiles()) {
    if (f.isFile())
        String name = f.getName();
        // do whatever you want with filename
}

2
File filePath= new File(File Address);
File[] fileList = filePath.listFiles();
String name = fileList [0].getName().toString();

不是很有用,没有解释,并且没有回答特定问题(按名称/扩展名过滤)。 - ivan_pozdeev

0

您能否将字符串从右往左反向处理,找到第一个斜杠,然后在那个位置剪切字符串并把最右边的部分作为文件名?


0

使用文件对象的getName()方法:

file.getName();

0

以上答案在我的情况下会导致空指针异常。以下代码对我有用:

File yourDir = new File(Environment.getExternalStorageDirectory().getPath() + "/WhatsApp/Databases");
    for (File f : yourDir.listFiles()) {
        if (f.isFile())
            name = f.getName();
        // Do your stuff
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接