java.lang.IllegalArgumentException: /somePath/�.png does not exist
at org.apache.commons.io.FileUtils.sizeOf(FileUtils.java:2413)
at org.apache.commons.io.FileUtils.sizeOfDirectory(FileUtils.java:2479)
< /code>
Основная причина заключается в следующем: < /p>
import java.io.File;
public class FileNameTest
{
public static void main(String[] args)
{
File[] files = new File("/somePath").listFiles();
for (File file : files)
{
System.out.println(file + " - " + (file.exists() ? "exists" : "missing!!"));
}
}
}
< /code>
output: < /p>
0.png - exists
7.png - exists
4.png - exists
8.png - exists
1.png - exists
3.png - exists
�.png - missing!!
2.png - exists
5.png - exists
�.png - missing!!
6.png - exists
d.png - exists
$.png - exists
s.png - exists
+.png - exists
9.png - exists
< /code>
«отсутствующие» файлы называются символами «µ» (mu) и «€» (евро). < /p>
Также кажется, что эти имена файлов используют неправильные кодирование. Правильно (по крайней мере, mu). < /p>
Но, тем не менее, ... < /p>
[*] Эти файлы существуют < /li>
file.listfiles () перечисляет их < /li>
для двух специальных случаев: file.exists (). JVM. Кто-нибудь может подтвердить это? Есть идеи, как это исправить? (Переименование файлов не является вариантом, поскольку они генерируются пользователем и могут повторно применять в любой форме или форме.) < /P>
Моя система: < /p>
- Ubuntu 4.2.0 < /li>
java rersion "1,8.0_102" < /li>
1.8.0_102-b14) - java Hotspot (TM) 64-битный сервер VM (Build 25.102-B14, смешанный режим)
- Apache Commons IO 2.4
Подробнее здесь: https://stackoverflow.com/questions/400 ... -to-exists