La bibliothèque Apache Commons VFS ne semble pas pouvoir prendre en charge les dossiers Windows spéciaux (réseau, récent, ordinateur, bibliothèques, etc.).Obtention de dossiers spéciaux dans Apache Commons VFS
File[] cbFolders = (File[])sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");
puis en les convertissant à FileObjects comme ceci:
for(File f: cbFolders){
fileObjArray.add(mgr.resolveFile(f.getPath()));
}
Il ne fonctionne tout simplement pas et tout ce que vous obtenez est le nom de chemin pour son nom.
Le chemin de ces fichiers sont comme ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
Toute aide à obtenir ce travail serait apprécié. Il semble que c'est probablement un bug dans la bibliothèque. Espérons que quelqu'un sait d'un hack ou d'un tel pour le faire fonctionner.
Edit: je crois que j'étais proche quand je créé de nouveaux raccourcis
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){
...
}
Il montre l'icône correcte et le nom et l'Explorateur Windows, il ouvre correctement, mais toujours avec VFS ouvre un dossier vide.
Wow! Je n'ai jamais utilisé la classe ShellFolder. Comment avez-vous trouvé? Comment avez-vous su que vous devez envoyer le paramètre "fileChooserComboBoxFolders"? Je suis désolé que je demande une quête au lieu de vous donner une réponse. Je n'ai pas de réponse mais la question m'intéresse. – AlexR
Je ne comprends tout simplement pas quelle est la relation entre le titre et la question elle-même. Le package de Commons VFS est org.apache.commons.vfs lorsque vous utilisez sun.awt.shell. – AlexR
"Comment l'avez-vous trouvé?" Recherche hardcore sur google :) "Comment saviez-vous que vous devez envoyer le paramètre" fileChooserComboBoxFolders "?" Code source Java. "Je ne comprends tout simplement pas quelle est la relation entre le titre et la question elle-même." Je veux que VFS supporte les fichiers spéciaux, par défaut il ne peut pas gérer les noms de chemins de ces fichiers spéciaux. – Zammbi