在java程序中访问windows有用户名和密码保护的共享目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java程序中访问windows有用户名和密码保护的共享目录相关的知识,希望对你有一定的参考价值。

Java程序中访问拥有全部读写权限的目录相对比较简单,和普通的目录没有什么差别。
但是要访问一个需要用户和密码验证的目录就需要一点点小技巧了。
这里介绍一个开源的库能够比较容易的实现这一需求。
1。 下载库文件:
 https://jcifs.samba.org/
下载的zip文件中, 不仅包含了jar文件,还有文档和示例。

2。拷贝jcif-1.3.18.jar到类路径中。

3。代码示例:
 1     String user = "your_user_name";
 2     String pass ="your_pass_word";
 3 
 4     String sharedFolder="shared";
 5     String path="smb://ip_address/"+sharedFolder+"/test.txt";
 6     NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("",user, pass);
 7     SmbFile smbFile = new SmbFile(path,auth);
 8     SmbFileOutputStream smbfos = new SmbFileOutputStream(smbFile);
 9     smbfos.write("testing技术分享.and writing to a file".getBytes());
10     System.out.println("completed 技术分享nice !");
说明: 如果有一个共享目录,比如: \\\\192.168.1.2\\testdir\\
那么smb的路径就是:smb://192.168.1.2/testdir/
NtlmPasswordAuthentication需要三个参数, 第一个是域名,没有的话,填null, 第二个是用户名,第三个是密码

得到SmbFile之后,操作就和java.io.File基本一样了。
另外还有一些功能比如:
SmbFile.copyTo
SmbFile.renameTo
等等

以上是关于在java程序中访问windows有用户名和密码保护的共享目录的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA,访问 URL 时提示“Windows 安全”

Java Struts2

Excel使用VBA读写有用户名及密码的网络文件夹中的文档

windows认证不断提示ie的用户名密码

用Python 和MySQL写一个程序 需求如下

JMeter之参数化