java共享目录samba

public void downloadViaShare(final String ip,final String user,final String password,final String <SPAN style="COLOR: #000000">dir</SPAN>)

  {

  logger.debug("Share(SMB) download!");

  String newDir = dir;

  String url = "";

  SmbFile [] fileList = null;

  FileOutputStream fos = null;

  SmbFileInputStream smbIs = null;

  byte [] buffer = new byte[8192];

  int readBytes = 0;

  int totalBytes = 0;

  if (!dir.endsWith("/")) //directory must end with "/"

  newDir = dir+"/";

  url = "smb://"+user+":"+password+"@"+ip+"/"+newDir;

  long startTime = System.currentTimeMillis();

  try {

  SmbFile shareDir = new SmbFile(url);

  if(shareDir.isDirectory())

  {

  fileList = shareDir.listFiles();

  for(int i=0;i<fileList.length;i++)

  {

  if(fileList[i].isFile())

  {

  smbIs = new SmbFileInputStream((SmbFile)fileList[i]);

  fos = new FileOutputStream(new File(tempDir+File.separator+fileList[i].getName()));

  while((readBytes = smbIs.read(buffer)) > 0 )

  {

  fos.write(buffer,0,readBytes);

  totalBytes += readBytes;

  }

  smbIs.close();

  fos.close();

  logger.debug(fileList[i].getName() + " is downloaded!");

  try

  {

  fileList[i].delete();

  }catch(SmbAuthException smbae )

  {

  logger.debug(fileList[i].getName()+" can not be deleted!");

  }

  }

  }

  long endTime = System.currentTimeMillis();

  long timeTaken = endTime-startTime;

  logger.debug(totalBytes +"bytes downloaded in " + timeTaken/1000 + " seconds at "+ (( totalBytes / 1000 ) / Math.max( 1, ( timeTaken / 1000 ))) + "Kb/sec");

  }

  }catch(MalformedURLException urle)

  {

  logger.debug("Incorrect URL format!");

  }catch (SmbException smbe) {

  smbe.printStackTrace();

  logger.debug(this.getClass().getName()+"||"+smbe.getMessage());

  }catch(IOException ioe)

  {

  ioe.printStackTrace();

  logger.debug(this.getClass().getName()+"||"+ioe.getMessage());

  }finally

  {

  try

  {

  smbIs.close();

  fos.close();

  }catch(Exception smbe)

  {

  logger.debug(this.getClass().getName()+"||"+smbe.getMessage());

  }

  }

  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值