如何在Java 6中使用DirectoryStream?

问题描述

我有下面的代码可以在Java 7中正常工作。但是如何使它适用于Java 6?

        List<Map<String,String>> map = new ArrayList<Map<String,String>>();
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(Path))) { //auto close stream
            for (Path path : stream) {
                Map<String,String> fileList = new HashMap<>();
                BasicFileAttributes attr = Files.readAttributes(path,BasicFileAttributes.class);
                if (!Files.isDirectory(path)) {
                    byte[] filepath = path.toFile().toURI().toURL().toString().getBytes("UTF-8");
                    String encodedpath = DatatypeConverter.printBase64Binary(filepath);
                    long time = attr.lastModifiedTime().toMillis();
                    fileList.put("filename",path.getFileName().toString());
                    fileList.put("date",String.valueOf(time));
                    fileList.put("path",encodedpath);
                    map.add(fileList);
                }
            }

            sortArray(map);
        } catch (FileNotFoundException e) {
            LOGGER.error("Folder not found " + Path);
            e.printstacktrace();
        } catch (Exception e){
            e.printstacktrace();
        }
        return map;
    }

我知道try-catch需要更改才能在Java 6中工作。因此可以像下面这样使用。但是,如何声明目录流?因为Java 6不支持菱形运算符<>

        try{
            
        } catch (){
            
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...