我从零编码我的个人FileChooser,它必须具有普通JFileChooser的所有功能,它几乎已经完成但是在java中我不知道如何获取所有的列表当前可用的共享文件夹(示例Home-Group,Mother-pc ..)。我已经尝试过FileSystemView,但无法得到我想要的东西。
在由我获得的同一用户启动的默认JFileChooser中: Default JFileChooser
这是我自己的文件选择器的界面: MyFileChooser
我的File-User实现使用方法File.listRoots();像这个例子:
// IF YOU NEED REPEATITION USE ARRAYLIST INSTEAD OF SET!!
import java.util.*;
public class Permutation {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("ENTER A STRING");
Set<String> se=find(in.nextLine());
System.out.println((se));
}
public static Set<String> find(String s)
{
Set<String> ss=new HashSet<String>();
if(s==null)
{
return null;
}
if(s.length()==0)
{
ss.add("");
}
else
{
char c=s.charAt(0);
String st=s.substring(1);
Set<String> qq=find(st);
for(String str:qq)
{
for(int i=0;i<=str.length();i++)
{
ss.add(comb(str,c,i));
}
}
}
return ss;
}
public static String comb(String s,char c,int i)
{
String start=s.substring(0,i);
String end=s.substring(i);
return start+c+end;
}
}
// IF YOU NEED REPEATITION USE ARRAYLIST INSTEAD OF SET!!
但它只列出我的物理驱动器。
答案 0 :(得分:0)
对于遇到同样问题的人,我找到了解决方案。您可以使用以下命令获取所有共享文件夹的列表以及更多内容:
FileSystemView fsv = FileSystemView.getFileSystemView();
for (File root : roots) {
System.out.println(">"+root);
for (File subitem : fsv.getFiles(root, false)) {
System.out.println("\t>" + subitem);
for(File subsub : fsv.getFiles(subitem, false)) {
System.out.println("\t\t>" + subsub);
}
}
}