2010-11-25 88 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。