Как перейти к сетевому узлу в JFileChooser?

Эта проблема

У меня есть JFileChooser, и мне нужно программно установить его currentDirectory на сетевой хост, содержащий несколько общих ресурсов SMB (например,\\blah). Технически это не «каталог», а скорее папка оболочки, представляющая список доступных общих ресурсов.

У JFileChooser нет проблем с переходом к определенной папке (например,\\blah\someShare), но не может обработать сам «каталог» хоста (например,\\blah).

Пользователи могут перейти к таким «каталогам» внутри JFileChooser, перейдя через папку оболочки «Сеть» или найдя определенный общий ресурс и перейдя к его родительскому каталогу. Отладка показывает, что скрытый каталог представлен в видеWin32ShellFolder2, До сих пор все мои попытки программно установить currentDirectory провалились.

new File("\\\\blah") может быть создан, но на самом деле не существует с точки зрения Java.

Неудачные попытки решения

chooser.setCurrentDirectory(new File("\\\\blah"));

Не удается, потому чтоJFileChooser проверяет, существует ли данный каталог, иnew File("\\\\blah").exists() возвращает ложь

File dir = new File("\\\\blah").getCanonicalFile();

Сбой с исключением:

  java.io.IOException: Invalid argument
  at java.io.WinNTFileSystem.canonicalize0(Native Method)
  at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
  at java.io.File.getCanonicalPath(File.java:618)
  at java.io.File.getCanonicalFile(File.java:643)

File dir = ShellFolder.getShellFolder(new File("\\\\blah"));

Сбой с исключением:

  java.io.FileNotFoundException
  at sun.awt.shell.ShellFolder.getShellFolder(ShellFolder.java:247)

File dir = new Win32ShellFolderManager2().createShellFolder(new File("\\\\blah"));

Сбой с исключением:

  java.io.FileNotFoundException: File \\blah not found
  at sun.awt.shell.Win32ShellFolderManager2.createShellFolder(Win32ShellFolderManager2.java:80)
  at sun.awt.shell.Win32ShellFolderManager2.createShellFolder(Win32ShellFolderManager2.java:64)

Path dir = Paths.get("\\\\blah");

Сбой с исключением:

java.nio.file.InvalidPathException: UNC path is missing sharename: \\blah
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:118)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
at java.nio.file.Paths.get(Paths.java:84)

Ответы на вопрос(2)

Ваш ответ на вопрос