posts - 23,comments - 12,trackbacks - 0
             

          本文涉及的幾個(gè)關(guān)鍵字解釋: 

          SMB: Server Message Block, 用于共享例如文件、打印機(jī)、串口或者是命名管道等用于通訊的抽象對(duì)象;
          CIFS:  Common Internet File System,  SMB的增強(qiáng)版,Windows 2000/XP實(shí)現(xiàn)了該協(xié)議;
          JCIFS: 一個(gè)實(shí)現(xiàn)了CIFS的純Java項(xiàng)目,無(wú)須任何的本地庫(kù)。

          JCIFS的網(wǎng)址: http://jcifs.samba.org/

          下面我們看一個(gè)非常簡(jiǎn)單的例子,在運(yùn)行這個(gè)例子之前必須準(zhǔn)備兩臺(tái)機(jī)器A、B,其中我們A是我們程序運(yùn)行所在的機(jī)器,而B(niǎo)則是被訪問(wèn)的機(jī)器,僅用B上的Guest用戶,而且A當(dāng)前的用戶不能存在于B機(jī)器中,也就是說(shuō)當(dāng)我們通過(guò)資源管理器訪問(wèn) \\B 的時(shí)候,會(huì)要求輸入用戶名以及口令,如下圖所示:

           

           

           

           

           

          這個(gè)時(shí)候A機(jī)器上的程序就不能通過(guò)例如 \\B\folder\1.txt 這樣的路徑來(lái)訪問(wèn)B機(jī)器上共享文件夾folder中的1.txt文件,也就是說(shuō)Java中自帶的File,FileInputStream類已經(jīng)不起作用了,不信? 不信你丫試試

          但是借助于JCIFS你就可以很容易的訪問(wèn)到文件1.txt的內(nèi)容,我們先來(lái)看這個(gè)簡(jiǎn)單的例子:

          import jcifs.smb.*;

          public class Demo{
              public static void main(String[] args) throws Exception{
                  //將user和password換成是B機(jī)器上的用戶名以及口令
                  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 );
                  }
              }
          }

          編譯并運(yùn)行這面的例子便可以打印文件 1.txt 的內(nèi)容。
          把上面例子中的密碼填寫成一個(gè)錯(cuò)誤的密碼再運(yùn)行程序,便會(huì)得到 jcifs.smb.SmbAuthException 異常。

          寫文件也是一個(gè)道理,關(guān)于文件的操作JCIFS提供了這么幾個(gè)類:SmbFile,SmbFileInputStream,SmbFileOutputStream,具體的用戶跟Java中對(duì)應(yīng)的類差不多。

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

          posted on 2005-08-19 11:18 my java 閱讀(1942) 評(píng)論(1)  編輯  收藏 所屬分類: java身份認(rèn)證轉(zhuǎn)帖

          FeedBack:
          # re: 在Java程序中訪問(wèn)Windows共享文件系統(tǒng) [未登錄](méi)
          2012-06-21 17:53 | javaer
          多謝!!!  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 柯坪县| 增城市| 自贡市| 民丰县| 安远县| 东乡族自治县| 横峰县| 禄丰县| 临沭县| 静海县| 宁乡县| 茂名市| 星子县| 章丘市| 灌南县| 万荣县| 营山县| 平顶山市| 五台县| 泸西县| 忻州市| 贵定县| 阿尔山市| 盐池县| 沂源县| 贺兰县| 宁海县| 蓝山县| 焉耆| 巴东县| 常山县| 保康县| 台北市| 清水河县| 司法| 曲麻莱县| 满城县| 彩票| 毕节市| 得荣县| 宣恩县|