【转载】通过java的jcifs类库访问网上邻居共享文件[代码]

转载自笨笨熊的BLOG:http://www.mkv8.com/?p=42

 

以下是通过java的jcifs类库,访问网上邻居上的共享文件代码。
相关类库下载地址:http://www.mkv8.com/?p=48


  1 public class UploadDownloadUtil
  2 {
  3 
  4  /**
  5   * 从共享目录拷贝文件到本地
  6   * @param remoteUrl 共享目录上的文件路径
  7   * @param localDir 本地目录
  8   */
  9  public void smbGet(String remoteUrl, String localDir)
 10  {
 11   InputStream in = null;
 12   OutputStream out = null;
 13   try
 14   {
 15    SmbFile remoteFile = new SmbFile(remoteUrl);
 16    //这一句很重要
 17    remoteFile.connect();
 18    if (remoteFile == null)
 19    {
 20     System.out.println("共享文件不存在");
 21     return;
 22    }
 23    String fileName = remoteFile.getName();
 24    File localFile = new File(localDir + File.separator + fileName);
 25    in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
 26    out = new BufferedOutputStream(new FileOutputStream(localFile));
 27    byte[] buffer = new byte[1024];
 28    while (in.read(buffer) != -1)
 29    {
 30     out.write(buffer);
 31     buffer = new byte[1024];
 32    }
 33   }
 34   catch (Exception e)
 35   {
 36    e.printStackTrace();
 37   }
 38   finally
 39   {
 40    try
 41    {
 42     out.close();
 43     in.close();
 44    }
 45    catch (IOException e)
 46    {
 47     e.printStackTrace();
 48    }
 49   }
 50  }
 51 
 52  /**
 53   * 从本地上传文件到共享目录
 54   * @Version1.0 Sep 25, 2009 3:49:00 PM
 55   * @param remoteUrl 共享文件目录
 56   * @param localFilePath 本地文件绝对路径
 57   */
 58  public void smbPut(String remoteUrl, String localFilePath)
 59  {
 60   InputStream in = null;
 61   OutputStream out = null;
 62   try
 63   {
 64    File localFile = new File(localFilePath);
 65 
 66    String fileName = localFile.getName();
 67    SmbFile remoteFile = new SmbFile(remoteUrl + "/" + fileName);
 68    in = new BufferedInputStream(new FileInputStream(localFile));
 69    out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
 70    byte[] buffer = new byte[1024];
 71    while (in.read(buffer) != -1)
 72    {
 73     out.write(buffer);
 74     buffer = new byte[1024];
 75    }
 76   }
 77   catch (Exception e)
 78   {
 79    e.printStackTrace();
 80   }
 81   finally
 82   {
 83    try
 84    {
 85     out.close();
 86     in.close();
 87    }
 88    catch (IOException e)
 89    {
 90     e.printStackTrace();
 91    }
 92   }
 93  }
 94 
 95  public static void main(String[] args)
 96  {
 97   UploadDownloadUtil test = new UploadDownloadUtil();
 98   // smb:域名;用户名:密码@目的IP/文件夹/文件名.xxx
 99   // test.smbGet("smb://szpcg;jiang.t:xxx@192.168.193.13/Jake/test.txt",
100   // "c://") ;
101   
102 //  test.smbPut("smb://szpcg;jiang.t:xxx@192.168.193.13/Jake",
103 //    "c://test.txt");
104   
105   
106   //用户名密码不能有强字符,也就是不能有特殊字符,否则会被作为分断处理
107   test.smbGet("smb://CHINA;xieruilin:123456Xrl@10.70.36.121/project/report/网上问题智能分析助手使用文档.doc",
108   "c://Temp/");
109 
110  }
111 
112 }
posted @ 2011-11-23 13:34 碟子 QQ:9997452 阅读(...) 评论(...) 编辑 收藏