Java程序中訪問擁有全部讀寫權(quán)限的目錄相對比較簡單,和普通的目錄沒有什么差別。
但是要訪問一個需要用戶和密碼驗(yàn)證的目錄就需要一點(diǎn)點(diǎn)小技巧了。
這里介紹一個開源的庫能夠比較容易的實(shí)現(xiàn)這一需求。
1。 下載庫文件:
2。拷貝jcif-1.3.18.jar到類路徑中。
3。代碼示例:
那么smb的路徑就是:smb://192.168.1.2/testdir/
但是要訪問一個需要用戶和密碼驗(yàn)證的目錄就需要一點(diǎn)點(diǎn)小技巧了。
這里介紹一個開源的庫能夠比較容易的實(shí)現(xiàn)這一需求。
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\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

10 System.out.println("completed

那么smb的路徑就是:smb://192.168.1.2/testdir/
NtlmPasswordAuthentication需要三個參數(shù), 第一個是域名,沒有的話,填null, 第二個是用戶名,第三個是密碼
得到SmbFile之后,操作就和java.io.File基本一樣了。
另外還有一些功能比如:
SmbFile.copyTo
SmbFile.renameTo
等等
得到SmbFile之后,操作就和java.io.File基本一樣了。
另外還有一些功能比如:
SmbFile.copyTo
SmbFile.renameTo
等等