posts - 23,comments - 12,trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          java

          javascript

          設計

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

             

          本文涉及的幾個關鍵字解釋: 

          SMB: Server Message Block, 用于共享例如文件、打印機、串口或者是命名管道等用于通訊的抽象對象;
          CIFS:  Common Internet File System,  SMB的增強版,Windows 2000/XP實現了該協議;
          JCIFS: 一個實現了CIFS的純Java項目,無須任何的本地庫。

          JCIFS的網址: http://jcifs.samba.org/

          下面我們看一個非常簡單的例子,在運行這個例子之前必須準備兩臺機器A、B,其中我們A是我們程序運行所在的機器,而B則是被訪問的機器,僅用B上的Guest用戶,而且A當前的用戶不能存在于B機器中,也就是說當我們通過資源管理器訪問 \\B 的時候,會要求輸入用戶名以及口令,如下圖所示:

           

           

           

           

           

          這個時候A機器上的程序就不能通過例如 \\B\folder\1.txt 這樣的路徑來訪問B機器上共享文件夾folder中的1.txt文件,也就是說Java中自帶的File,FileInputStream類已經不起作用了,不信? 不信你丫試試

          但是借助于JCIFS你就可以很容易的訪問到文件1.txt的內容,我們先來看這個簡單的例子:

          import jcifs.smb.*;

          public class Demo{
              public static void main(String[] args) throws Exception{
                  //將user和password換成是B機器上的用戶名以及口令
                  SmbFileInputStream in = new SmbFileInputStream("smb://user:password@B/folder/1.txt" );
                  byte[] b = new byte[8192];
                  int n;
                  while(( n = in.read( b )) > 0 ) {
                      System.out.write( b, 0, n );
                  }
              }
          }

          編譯并運行這面的例子便可以打印文件 1.txt 的內容。
          把上面例子中的密碼填寫成一個錯誤的密碼再運行程序,便會得到 jcifs.smb.SmbAuthException 異常。

          寫文件也是一個道理,關于文件的操作JCIFS提供了這么幾個類:SmbFile,SmbFileInputStream,SmbFileOutputStream,具體的用戶跟Java中對應的類差不多。

          JCIFS中文件的URL也就是smb_url,格式為:smb://{user}:{password}@{host}/{path} ,只要填好這個URL,JCIFS就會幫你搞定身份驗證的事,粉簡單的。

          posted on 2005-08-19 11:18 my java 閱讀(1948) 評論(1)  編輯  收藏 所屬分類: java身份認證轉帖

          FeedBack:
          # re: 在Java程序中訪問Windows共享文件系統 [未登錄]
          2012-06-21 17:53 | javaer
          多謝!!!  回復  更多評論
            
          主站蜘蛛池模板: 锡林浩特市| 武山县| 德江县| 赣州市| 赤壁市| 分宜县| 宁河县| 项城市| 哈巴河县| 本溪市| 九江县| 阳新县| 甘谷县| 黄大仙区| 安溪县| 孟州市| 许昌市| 瑞昌市| 灌南县| 兴和县| 屏东县| 黄龙县| 平南县| 定南县| 伊金霍洛旗| 诸暨市| 景东| 潮安县| 靖安县| 金秀| 樟树市| 南投市| 宿松县| 遵化市| 韶山市| 澄城县| 长垣县| 宁远县| 大关县| 久治县| 丰原市|