0

好吧,我一直是 android 开发的新手,从那以后没有什么比这更有趣了!!
但我就是不明白有些地方是你帮不上忙的!!
好吧,我在实现一个将被调用一次的搜索方法时遇到了困难,它将列出存储内部(sdcard)和外部(ext_card)中存在的所有特定类型的文件。
我如何实现这一目标?

4

2 回答 2

2

您需要做几件事。

为了根据类型(或扩展名)过滤文件,您可以像这样使用 FilenameFilter:

public static final FilenameFilter FILENAME_FILTER = new FilenameFilter()
{
    @Override
    public boolean accept(File dir, String filename)
    {
        return filename.endsWith(FILE_EXTENSION);
    }
};

作为一个应用程序,您无法访问内部存储,只能访问外部存储(无论是否在 SD 卡上,它仍然被称为相同的东西。这可以参考使用

Environment.getExternalStorageDirectory().getAbsolutePath()

此外,请确保您在清单文件中拥有正确的权限。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
于 2013-09-27T19:12:55.683 回答
0

澄清:

  1. 您始终可以访问应用程序自己的内部存储空间,但无法搜索其他应用程序的内部存储空间。
  2. 在现代设备中,内部和外部存储的位置并不总是与 SD 卡的存在相关。内部存储始终在设备的内部存储器中实现。外部存储可以在 SD 卡上实现,但如今许多设备在与内部存储相同的内部存储器硬件中实现它。但是,该系统将内部存储和外部存储分开。如果设备在内部存储器中具有内部和外部存储以及SD 卡,则该卡是完全独立的并且仅存储媒体文件。
  3. 尽管您应该使用 android.permission.READ_EXTERNAL_STORAGE,但请注意它尚未被强制执行。对于阅读此线程并反对 READ_EXTERNAL_STORAGE 是“必要”的想法的人来说,这主要是一个注释。
于 2013-09-27T19:48:13.300 回答