Reputation: 7306
Good news everyone.
I found intersted problem with java on my Mac OS.
I put file with name from nonlatin characters to folder test, full path is /Users/dnelepov/Downloads/test/тест изображение.png
As u can see file exists!
Next i wrote some code to view all files on folder /Users/dnelepov/Downloads/test/ and open file for read (for example):
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);
}
}
But next i got this:
As you can see line EXSIS: never printed, but file founded!
Also printind system properties get:
file.encoding=UTF-8
p.s.
I ask similar type question before Java java.io.filenotfoundexception for file path with cyrillic characters - but i think this problem not for only Cyrillic characters - but for all non latin languages.
Upvotes: 3
Views: 1267
Reputation: 146
In Java 7 you can use java.nio.file API, it works properly with cyrillic paths:
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;
}
});
Upvotes: 3