IP下的股票

时间:2011-12-12 20:49:08

标签: java windows networking filesystems samba

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

模拟代码:

IP ip = new IP("10.0.0.9");

for(File share : ip.getSharedFolders){
    System.out.println(share.getName());
}

有没有办法可以实现这一目标?

我想制作类似于Windows网络浏览器的东西,我需要获取特定IP下的所有共享文件夹,以便我可以生成一棵树。

Network explorer

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

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

3 个答案:

答案 0 :(得分:11)

您可以使用The Java CIFS Client Library,特别是SmbFile.list方法获取共享列表。以下是如何使用此API的小例子:

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

答案 1 :(得分:2)

开箱即用的Java不支持您要执行的操作。 您需要使用JCIFS等库来执行此操作。

一个简单/明智的方法是确保你有一个驱动器映射(如果是其他操作系统的windows或nfs / smb安装)到该位置,然后将其视为本地文件 - 使用{{1} } API。

答案 2 :(得分:0)

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

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