如何从Java中的路径获取目录名称?

时间:2019-05-28 13:19:29

标签: java list directory path

我列出了服务器中的所有文件夹。 所有文件夹都位于这样的位置:

=> Ex1:“ C:\ A \ AB \ ABC \ FolderToListA-someText”

=> Ex2:“ C:\ D \ DE \ DEF \ FolderToListB-someText”

我想获取FolderToLists,但只返回一次。而不是子目录的次数。

我已经列出了每个文件夹并尝试使用String []部分,但是问题是当我列出父目录中的每个文件夹时,都会得到重复的“ FolderToList”

例如:FolderToList包含2个目录,它将在FolderToList中返回两次。

for(int j = 0 ; j < folderOrigin.length; j++) 
{
    if(folderOrigin[j].toString().contains("-") && folderOrigin[j].length() > 29)
    {   
        String fds = folderOrigin[j].toString();;
        fds = fds.substring(0,29);

        String [] parts = fds.split("\\\\"); 
        String designation = parts[parts.length-1];     
    }
}

我希望输出为“ FolderToListA”,“ FolderToListB”,而不是“ FolderToListA”,“ FolderToListA”,具体取决于FolderA的子目录与FolderB相同

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您只是不想要双打? 如果是这样,您只需要在Set的for循环中添加每个指定,即可避免出现重复。

赞:

Set<String> designations = new HashSet<String>(); 

for(int j = 0 ; j < folderOrigin.length; j++) {

  if(folderOrigin[j].toString().contains("-") && folderOrigin[j].length() > 29){

    String fds = folderOrigin[j].toString();;
    fds = fds.substring(0,29);

    String [] parts = fds.split("\\\\"); 
    String designation = parts[parts.length-1];
    designations.add(parts[parts.length-1]);
   }
}