使用java连接到windows中的共享文件夹
Posted
技术标签:
【中文标题】使用java连接到windows中的共享文件夹【英文标题】:connecting to shared folder in windows with java 【发布时间】:2011-01-11 10:11:40 【问题描述】:我需要通过java连接到远程windows机器上的共享文件夹,我将域身份验证(用户名和密码)放在代码中,这是我的代码
File file = new File("\\\\theRemoteIP\\webapps");
File[] files = file.listFiles();
System.out.println("access done");
for (int i = 0; i < files.length; i++)
String name = files[i].getName();
System.out.println(name);
谢谢
【问题讨论】:
在 Oracle Java 8 中这可以正常工作。 【参考方案1】:如果您正在访问打开的共享文件夹(即用户名或密码未知或不需要),那么您可以按照以下代码:
String path="smb://172.16.0.11/";
SmbFile smbFile = new SmbFile(path);
String a[]=smbFile.list();
for(int i=0;i<a.length;i++)
System.out.println(a[i]);
【讨论】:
【参考方案2】:您应该使用来自JCIFS 的SmbFile 和NtlmPasswordAuthentication。这是一段简单的代码,向您展示如何操作:
String url = "smb://yourhost/yourpath/";
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "user", "password");
SmbFile dir = new SmbFile(url, auth);
for (SmbFile f : dir.listFiles())
System.out.println(f.getName());
【讨论】:
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "user", "password");那么“用户”、“密码”是域认证权吗? 就是这样。有关更多详细信息,请参阅 javadoc(在答案中链接)。 如果您使用的是 UNC path,请确保有两个额外的正斜杠以表明它是 UNC 路径。例如smb:////11.1.2.10/myFolder
或smb:////myShare/myFolder
以上是关于使用java连接到windows中的共享文件夹的主要内容,如果未能解决你的问题,请参考以下文章
win10远程连接linux samba,如何从Win10连接到Linux Samba共享
Win10提示“因为文件共享不安全,所以你不能连接到文件共享”如何处理