java - Android:isDirectory() 始终返回 true

标签 java android

我试过here ,但没有帮助。

我的文件名过滤器仅获取目录和 .txt 文件:

FilenameFilter filter = new FilenameFilter()
{
    public boolean accept(File dir, String name)
    {
        if (dir.isDirectory())
        {
            return true;
        }
        else
        {
            return dir.getName().endsWith(".txt");
        }
    }
};

我也尝试过!dir.isFile()

将过滤器应用于文件和目录列表:

            CurDir = homeDir;
            dir = new File(homeDir);
            values = dir.list(filter);
            if (values == null)
            {
                Toast.makeText(this, "No Files/Folders", Toast.LENGTH_LONG).show();
            }
            else
            {
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
                setListAdapter(adapter);
            }

homeDir 的值:

homeDir = Environment.getExternalStorageDirectory().toString();

它仍然显示 .png 和所有其他文件。

最佳答案

传递的File dir是包含实际文件的目录,因此它始终是一个目录。您拥有的完整文件是%dir%/%name%。我相信如果整个文件是一个目录,名称将为“/”或者可能为空。

您还可以通过执行 new File(dir, name);

创建完整文件

关于java - Android:isDirectory() 始终返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700412/

相关文章:

java - 打包 android.os。不存在 Libgdx Netbeans

java - Eclipse 使用的是哪个 Java?

android - Google Play Billing Library 3升级到4时如何处理代码purchase.sku?

android - ObjectAnimator 忽略 LayoutTransition 中的持续时间

android - 如何以编程方式获取连接到我的 Android 设备的 USB 设备的 ID(或一些独特的属性)?

android - Firebase 崩溃报告 : FirebaseApp with name [DEFAULT] doesn't exist

java - 用于附加代码的 StringBuffer 或 HashMap?

java - 网络代码有时会抛出 UnknownHostException

java - IntelliJ IDEA 13.1 缺少运行/调试窗口

javascript - React native webview 在状态更改时丢失注入(inject)的数据