我列出了服务器中的所有文件夹。 所有文件夹的位置都如下所示:
=> Ex1 : "C:\A\AB\ABC\FolderToListA-someText">
=> Ex2 : "C:\D\DE\DEF\FolderToListB-someText"
我想获取文件夹列表,但只返回一次。而不是子目录的次数。
我已经列出了每个文件夹并尝试使用 String [] 部分,但问题是当我列出父目录中的每个文件夹时,我得到重复的"FolderToList"
例如:文件夹列表包含 2 个目录,它将返回两次 de 文件夹到列表。
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];
}
}
我希望输出是"文件夹到列表A","文件夹到列表B",而不是"文件夹到列表A">"文件夹到列表A",具体取决于文件夹中的子目录文件夹B也是如此
如果我理解正确,你只是不想要双打? 如果是这样,您只需要在 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]);
}
}