根据知识产权

如何列出特定IP地址下的所有可用共享文件夹?

模拟代码:

IP ip = new IP("10.0.0.9"); for(File share : ip.getSharedFolders){ System.out.println(share.getName()); } 

有没有办法可以实现这一点?

我想做类似于Windowsnetworking浏览器的东西,我需要得到所有的共享文件夹在一个特定的IP下,所以我可以生成一棵树。

网络浏览器

使用第一级共享文件夹,我可以轻松地获得这样的较低级别

 for(File f : new File("//10.0.0.9/d").listFiles()){ System.out.println(f.getName()); 

您可以使用Java CIFS客户端库 ,特别是SmbFile.list方法获取共享列表。 这里是一个如何使用这个API的小例子:

 SmbFile server = new SmbFile("smb://server/"); String[] shares = server.list(); 

从开箱即用的Java不支持你正在做的事情。 您需要使用JCIFS等库来执行此操作。

一个简单/方便的方法是确保你有一个驱动器映射(如果Windows或nfs / smb安装其他操作系统)的位置,然后将其视为本地文件 – 使用java.io API。

如果可以通过服务器IP地址访问文件(网络明智和权限明智),那么确定您可以通过执行以下操作递归列出它们:

  1. 获取远程文件夹名称。 示例"//10.0.0.9/folder"
  2. 迭代文件夹就像在本地目录中列出文件一样(请参阅此链接以了解有关在本地目录中列出本地文件的更多信息