Как предотвратить многократное падение ShellFolder.getFolderColumns (...) - PullRequest
0 голосов
/ 26 ноября 2010

Я использую секретный скрытый класс 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 также использует этот метод, но я не могу найти его предотвращение / защиту от сбоев такого типа.

1 Ответ

0 голосов
/ 10 апреля 2011

Метод getFolderColumns работает только для папок.Так что кэшируйте информацию о столбце (чтобы вы знали положение столбца), и вы все равно можете получить необходимые данные столбца из файлов.Я не видел случая, когда столбцы в папках отличаются от файлов.

О, просто хочу отметить, что этот метод хорош только для Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...