gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:04 25 4
gpt4 key购买 nike

大家好消息。

我在我的 Mac 操作系统上发现了 java 的问题。

我将名称为非拉丁字符的文件放入文件夹test,完整路径为/Users/dnelepov/Downloads/test/тест изображение.png

enter image description here

如您所见文件存在!

接下来我写了一些代码来查看文件夹 /Users/dnelepov/Downloads/test/ 上的所有文件并打开文件进行读取(例如):

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);
}
}

但接下来我得到了这个:

enter image description here

如您所见,行 EXSIS:从未打印,但已创建文件!

还有 printind 系统属性:

file.encoding=UTF-8

附注

我之前问过类似的问题 Java java.io.filenotfoundexception for file path with cyrillic characters - 但是我认为这个问题不仅适用于西里尔字符,还适用于所有非拉丁语言。

最佳答案

在 Java 7 中,您可以使用 java.nio.file API,它可以正确处理西里尔字母路径:

    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;
}
});

关于如果路径包含非拉丁字符,则 Mac OS FileNotFound 上的 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16977251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com