大家好消息.
我在Mac OS上发现Java的问题.
我将名称从非拉丁字符的文件放入文件夹测试,完整路径为/ Users / dnelepov / Downloads / test /тестизображение.png
如您所见,文件存在!
接下来,我编写了一些代码以查看/ Users / dnelepov / Downloads / test /文件夹中的所有文件,并打开文件进行读取(例如):
<code>File dirF = new File("/Users/dnelepov/Downloads/test/");
File[] files = dirF.listFiles();
for (File oneF : files) {
System.out.println("FILE:" + oneF);
if (oneF.exists()){
System.out.println("EXISTS:"+oneF);
}
}
</code>
但是接下来我得到了:
如您所见,EXSIS行:从不打印,但已建立文件!
同样,printind系统属性得到:
file.encoding = UTF-8
ps.
我问Java java.io.filenotfoundexception for file path with cyrillic characters之前的类似类型问题-但我认为这个问题不仅针对西里尔字母,而且针对所有非拉丁语言.
解决方法:
在Java 7中,您可以使用java.nio.file API,它可以与西里尔路径一起正常工作:
<code> Path path = Paths.get("/Users/dnelepov/Downloads/test/");
Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path oneF, BasicFileAttributes attrs) throws IOException {
System.out.println("FILE:" + oneF);
if (Files.exists(oneF)) {
System.out.println("EXISTS:" + oneF);
}
return FileVisitResult.CONTINUE;
}
});
</code>
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!