我试过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/