JCIFS
  jcifs是CIFS在JAVA中的一個實現(xiàn),是samba組織負責維護開發(fā)的一個開源項目,專注于使用java語言對cifs協(xié)議的設(shè)計和實現(xiàn)。他們將jcifs設(shè)計成為一個完整的,豐富的,具有可擴展能力且線程安全的客戶端庫。這一庫可以應用于各種java虛擬機訪問遵循CIFS/SMB網(wǎng)絡傳輸協(xié)議的網(wǎng)絡資源。類似于java.io.File的接口形式,在多線程的工作方式下被證明是有效而容易使用的。 
   jcifs的開發(fā)方法類似java的文件操作功能,它的資源url定位:smb://{user}:{password}@{host}/{path},smb為協(xié)議名,user和password分別為共享文件機子的登陸名和密碼,@后面是要訪問的資源的主機名或IP地址。最后是資源的共享文件夾名稱和共享資源名。例如 smb://administrator:122122@192.168.0.22/test/response.txt。 
   在JAVA程序中,使用如下方式獲得一個遠程共享文件的句柄:SmbFilefile = new SmbFile("smb://guest:1234@192.168.3.56/share/a.txt");這里的句柄不僅限于遠程的共享文件,還可能是共享文件夾。isFile()方法和isDirectory()用來判斷這個句柄對應的資源的真實屬性。如果是共享文件夾,通過調(diào)用它的list()方法將獲得其中資源的列表。List方法支持過濾器機制,有兩種過濾器可供使用,一種是SmbFileFilter,另一種是SmbFilenameFilter,這兩個在jcifs中作為接口出現(xiàn),你可以根據(jù)自己的需要派生出個性化的過濾器,實現(xiàn)接口中的accept方法,以滿足不同業(yè)務的需求。 
   SmbFileInputStream是smb文件的輸入流,它的功能是以流的方式打開一個SmbFile:SmbFileInputStream in = newSmbFileInputStream(file);SmbFileInputStream提供read方法,你可以從這個流中讀出遠程文件全部的內(nèi)容。 
   jcifs可從http://jcifs.samba.org/下載,下面是一個簡單的例子: 
   import jcifs.smb.SmbFileInputStream; 
   import jcifs.smb.SmbFile; 
   public class ReadShareFile { 
   public static void main(String[] args) { 
   try{ 
   SmbFile smbFile=newSmbFile("smb://test:test@10.218.100.12/share2/aa.txt"); 
   //通過smbFile.isDirectory();isFile()可以判斷smbFile是文件還是文件夾 
   int length=smbFile.getContentLength();//得到文件的大小 
   byte buffer[] = new byte[length] ; 
   SmbFileInputStream in = newSmbFileInputStream(smbFile) ; //建立smb文件輸入流 
   while((in.read(buffer)) != -1){ 
   System.out.write(buffer); 
   System.out.println(buffer.length); 
   } 
   in.close(); 
   }catch(Exception e){ 
   e.printStackTrace(); 
   } 
   } 
   }
?
轉(zhuǎn)載于:https://www.cnblogs.com/liaoshiyong/archive/2013/06/14/3150857.html
總結(jié)
 
                            
                        - 上一篇: 【转】如何缩进你的代码?
- 下一篇: C#自定义开关按钮控件--附带第一个私活
