Библиотека Apache Commons VFS, по-видимому, не поддерживает специальные папки Windows (сеть, последние, компьютеры, библиотеки и т. Д.).
File[] cbFolders = (File[])sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");
, а затем преобразует их в объекты FileObject следующим образом:
for(File f: cbFolders){
fileObjArray.add(mgr.resolveFile(f.getPath()));
}
Он просто не работает, и все, что вы получаете, это путь к его имени.
Путь к этим файлам подобен ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
Любая помощь в полученииэта работа будет оценена.Похоже, это скорее всего ошибка в библиотеке.Надеюсь, кто-то знает, как взломать или что-то подобное, чтобы заставить его работать.
Редактировать: Я думаю, что я был близок, когда я создал новые ярлыки
try{
final File[] cbFolders = (File[])sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");
String name = "";
File[] systemFiles = new File[cbFolders.length];
i =0;
for(File f: cbFolders){
name = f.getName();
if(name.startsWith("::{")){
name = name.substring(2);
System.out.println("converting: " + name);
String fileName = fileSystemView.getSystemDisplayName(f);
File file = new File("C:\\Users\\Daniel\\Desktop\\" + fileName + "." + name);
boolean success = false;
success = file.mkdir(); //returns false even if it works,
systemFiles[i] = file;
}else
systemFiles[i] = f;
i++;
}
list = new ArrayList<File>(Arrays.asList(systemFiles));
}catch(final Exception e){
...
}
Он показывает правильный значок и имя и в WindowsПроводник открывается правильно, но все еще с VFS открывает пустую папку.