posted on 2015-11-20 14:03
云自无心水自闲 阅读(12408)
评论(0)
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
等等