Я использую секретный скрытый класс ShellFolder в Java. У него есть хороший метод getFolderColumns, который дает вам доступ к некоторым хорошим данным о файле.
Проблема в том, что многие файлы сбивают его с:
Исключение в потоке
"Бассейн-1-токарно-2445"
java.lang.InternalError: невозможно
связать C: \ Windows \ System32 \ zonedon.reg
родителю в
sun.awt.shell.Win32ShellFolder2 $ 4.call (Win32ShellFolder2.java:400)
в
sun.awt.shell.Win32ShellFolder2 $ 4.call (Win32ShellFolder2.java:385)
в
sun.awt.shell.Win32ShellFolderManager2 $ ComInvoker.invoke (Win32ShellFolderManager2.java:523)
в
sun.awt.shell.ShellFolder.invoke (ShellFolder.java:399)
в
sun.awt.shell.ShellFolder.invoke (ShellFolder.java:385)
в
sun.awt.shell.Win32ShellFolder2.getIShellFolder (Win32ShellFolder2.java:384)
в
sun.awt.shell.Win32ShellFolder2 $ 17.call (Win32ShellFolder2.java:1068)
в
sun.awt.shell.Win32ShellFolder2 $ 17.call (Win32ShellFolder2.java:1066)
в
java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:303)
в
java.util.concurrent.FutureTask.run (FutureTask.java:138)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (ThreadPoolExecutor.java:886)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:908)
в
sun.awt.shell.Win32ShellFolderManager2 $ ComInvoker $ 3.run (Win32ShellFolderManager2.java:492)
в
java.lang.Thread.run (Thread.java:619)
Вы также не можете поймать это и возобновить, поскольку оно вызывает исключение UncaughtException.
Я заметил, что JFileChooser также использует этот метод, но я не могу найти его предотвращение / защиту от сбоев такого типа.