首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

java共享索引samba

2012-08-03 
java共享目录sambapublic void downloadViaShare(final String ip,final String user,final String passwo

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());  }  }  }

热点排行