2010-11-25 123 views
0

我在Java中使用祕密隱藏的ShellFolder類。它有一個名爲getFolderColumns的好方法,可以讓你訪問一些關於該文件的好數據。如何防止ShellFolder.getFolderColumns(...)崩潰很多

問題是,很多的文件與崩潰吧:

Exception in thread "pool-1-thread-2445" java.lang.InternalError: Unable to bind C:\Windows\System32\zonedon.reg to parent at sun.awt.shell.Win32ShellFolder2$4.call(Win32ShellFolder2.java:400) at sun.awt.shell.Win32ShellFolder2$4.call(Win32ShellFolder2.java:385) at sun.awt.shell.Win32ShellFolderManager2$ComInvoker.invoke(Win32ShellFolderManager2.java:523) at sun.awt.shell.ShellFolder.invoke(ShellFolder.java:399) at sun.awt.shell.ShellFolder.invoke(ShellFolder.java:385) at sun.awt.shell.Win32ShellFolder2.getIShellFolder(Win32ShellFolder2.java:384) at sun.awt.shell.Win32ShellFolder2$17.call(Win32ShellFolder2.java:1068) at sun.awt.shell.Win32ShellFolder2$17.call(Win32ShellFolder2.java:1066) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Win32ShellFolderManager2.java:492) at java.lang.Thread.run(Thread.java:619)

你也不能趕上這一點,並恢復它拋出一個UncaughtException。 我注意到JFileChooser也使用這種方法,但我似乎無法從這些類型的崩潰中找到它的預防/保護。

回答

0

getFolderColumns方法僅適用於文件夾。因此緩存列信息(所以你知道列的位置),你仍然可以從文件中獲取所需的列數據。我還沒有看到文件夾中的列與文件不同的情況。

哦,只是要注意,這種方法只適用於Windows。