如何解决如何在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 举报,一经查实,本站将立刻删除。