Apache Commons VFS 라이브러리는 특별한 Windows 폴더 (네트워크, 최근 컴퓨터, 라이브러리 등)를 지원하지 못하는 것 같습니다. 과 같이 FileObjects로 변환Apache Commons에서 특수 폴더 가져 오기 VFS
File[] cbFolders = (File[])sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");
다음 :
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와는 빈 폴더를 엽니을 만들 때 나는 가까이 생각합니다.
와우! 나는 ShellFolder 클래스를 사용한 적이 없다. 어떻게 찾았 니? "fileChooserComboBoxFolders"매개 변수를 보내야한다는 것을 어떻게 알았습니까? 나는 당신에게 대답을주는 대신에 questing을 요청하고있어 유감입니다. 나는 대답이 없지만 문제는 나에게 흥미 롭다. – AlexR
제목과 질문 자체의 관계를 이해하지 못했습니다. Commons VFS '패키지는 sun.awt.shell을 사용하는 동안 org.apache.commons.vfs입니다. – AlexR
"어떻게 찾았습니까?" Google에서 하드 코어 검색 :) "fileChooserComboBoxFolders"매개 변수를 보내야한다는 것을 어떻게 알았습니까? " 자바 소스 코드. "나는 제목과 질문 자체 사이의 관계가 무엇인지 이해하지 못한다." VFS에서 특수 파일을 지원하도록 설정하려면 기본적으로 특수 파일의 경로 이름을 처리 할 수 없습니다. – Zammbi