Java,获取所有可用共享文件夹的列表(至少在Windows中)

时间:2017-07-30 12:17:28

标签: java jfilechooser

我从零编码我的个人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!!

但它只列出我的物理驱动器。

1 个答案:

答案 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);
        }
    }
}