Commons VFS
  1. Commons VFS
  2. VFS-339

Unable to resolve special windows folders

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Critical Critical
    • Resolution: Unresolved
    • Affects Version/s: 2.0
    • Fix Version/s: None
    • Labels:
      None
    • Environment:

      Windows

      Description

      VFS unable to support special windows folders (Network, recent, computer, libraries, etc).

      File[] cbFolders = (File[])sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");

      and then converting them to FileObjects like so:

      for(File f: cbFolders)

      { fileObjArray.add(mgr.resolveFile(f.getPath())); }

      The path of these files are like "::

      {20D04FE0-3AEA-1069-A2D8-08002B30309D}

      "

      So I tried to debug it and fixed this bug: https://issues.apache.org/jira/browse/VFS-338

      and then removed:

      if (startPos < 2)

      { throw new FileSystemException("vfs.provider.local/not-absolute-file-name.error", uri); }

      return "//" + extractUNCPrefix(uri, name);

      But now complains about the file doesn't exist. I'll keep trying...

        Activity

        Hide
        Bernd Eckenfels added a comment -

        BTW: the Folders behave quite strange, some have toString() with a display name and some have getName() with the display information. Java itself does not deal with the ::{} ones very well, it qualified them with the current directory if you use getAbsoluteName().

        File[] files = (File[])sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");
        for(File f : files)
          System.out.println("" + f.getClass().getName() + " name=" + f.getName() + " tostring="+ f.toString());
        
        sun.awt.shell.Win32ShellFolder2 name=Recent tostring=C:\Users\NAME\AppData\Roaming\Microsoft\Windows\Recent
        sun.awt.shell.Win32ShellFolder2 name=Desktop tostring=C:\Users\NAME\Desktop
        sun.awt.shell.Win32ShellFolder2 name=::{20D04FE0-3AEA-1069-A2D8-08002B30309D} tostring=Computer
        sun.awt.shell.Win32ShellFolder2 name= tostring=C:\
        ...
        sun.awt.shell.Win32ShellFolder2 name= tostring=U:\
        sun.awt.shell.Win32ShellFolder2 name=server tostring=C:\Users\eckenfel\AppData\Roaming\Microsoft\Windows\Network Shortcuts\server
        sun.awt.shell.Win32ShellFolder2 name=::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C} tostring=Netzwerk
        sun.awt.shell.Win32ShellFolder2 name=::{031E4825-7B94-4DC3-B131-E946B44C8DD5} tostring=Bibliotheken
        sun.awt.shell.Win32ShellFolder2 name=::{B4FB3F98-C1EA-428D-A78A-D1F5659CBA93} tostring=Heimnetzgruppe
        

        BTW: I am not sure how this is related to VFS-338, my samples do not have //// prefix?

        Show
        Bernd Eckenfels added a comment - BTW: the Folders behave quite strange, some have toString() with a display name and some have getName() with the display information. Java itself does not deal with the ::{} ones very well, it qualified them with the current directory if you use getAbsoluteName(). File[] files = (File[])sun.awt.shell.ShellFolder.get( "fileChooserComboBoxFolders" ); for (File f : files) System .out.println( "" + f.getClass().getName() + " name= " + f.getName() + " tostring="+ f.toString()); sun.awt.shell.Win32ShellFolder2 name=Recent tostring=C:\Users\NAME\AppData\Roaming\Microsoft\Windows\Recent sun.awt.shell.Win32ShellFolder2 name=Desktop tostring=C:\Users\NAME\Desktop sun.awt.shell.Win32ShellFolder2 name=::{20D04FE0-3AEA-1069-A2D8-08002B30309D} tostring=Computer sun.awt.shell.Win32ShellFolder2 name= tostring=C:\ ... sun.awt.shell.Win32ShellFolder2 name= tostring=U:\ sun.awt.shell.Win32ShellFolder2 name=server tostring=C:\Users\eckenfel\AppData\Roaming\Microsoft\Windows\Network Shortcuts\server sun.awt.shell.Win32ShellFolder2 name=::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C} tostring=Netzwerk sun.awt.shell.Win32ShellFolder2 name=::{031E4825-7B94-4DC3-B131-E946B44C8DD5} tostring=Bibliotheken sun.awt.shell.Win32ShellFolder2 name=::{B4FB3F98-C1EA-428D-A78A-D1F5659CBA93} tostring=Heimnetzgruppe BTW: I am not sure how this is related to VFS-338 , my samples do not have //// prefix?
        Hide
        Ralph Goers added a comment -

        Is there any new information on this?

        Show
        Ralph Goers added a comment - Is there any new information on this?
        Daniel R created issue -

          People

          • Assignee:
            Unassigned
            Reporter:
            Daniel R
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development