java - 不兼容类型 : String cannot be converted to File

标签 java android

   GridView gv;
   ArrayList<File> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_yearbook);

    list = imageReader (Environment.getExternalStorageDirectory().getAbsolutePath() + "/Mypath");

    gv = (GridView) findViewById(R.id.ImageGV);
    gv.setAdapter(new GridAdapter());
}


ArrayList<File> imageReader(File root) {

    ArrayList<File> a = new ArrayList<>();

    File[] files = root.listFiles();
    for (int i =0; i< files.length; i++) {
        if (files[i].isDirectory()) {
            a.addAll(imageReader(files[i]));
        }
        else {
            if ( files[i].getName().endsWith(".jpg")) {
                a.add(files[i]);
            }
        }
    }

    return a;
}

所以我试图让我的 imageReader 读取我的 sdcard 中的某个目录,以在我的程序中显示一组图像。但是我在 list = imageReader (Enviroment.getExternalStorageDirectory().getAbsolutePath() + "/Mypath"); 行遇到错误,它说 java.io.file 无法转换为 java.io.string。我该如何解决这个问题,我在谷歌上搜索了几个小时,但我真的找不到解决方案

最佳答案

使用带两个参数的 File 构造函数。第一个是目录,第二个是文件名或目标目录的名称

list = imageReader(new File(Environment.getExternalStorageDirectory(), "Mypath"))

这样系统也会处理分隔符。还要注意

listFiles() 可以返回 null。所以你应该在开始循环之前检查空值

关于java - 不兼容类型 : String cannot be converted to File,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32986029/

相关文章:

java - 读取网页内容

java - 搜索 String 实例的 HashMap 值

java - 简单的 Android 应用程序崩溃

java - 使用Android Studio从assets文件夹将html文件加载到android上的webview

java - OpenCV Java 中的灰度反转图像

java - 我将 TestNG 与 PowerMock 一起使用。它总是抛出未准备测试的类

android - getActionProvider : item does not implement SupportMenuItem

android - 在 SQLite select 语句中将整数格式化为格式化日期

android - 如何在android中应用Straight Skeleton Algorithm

java - TestNG预期异常处理: Have my cake as well as eat it?