当前位置:首页 > 操作系统 > MacOs

如果路径包含非拉丁字符,则Mac OS上的Java FileNotFound

大家好消息.

我在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)!

相关教程推荐

其他课程推荐