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());
}
}
}
java共享目录samba
最新推荐文章于 2025-05-20 22:23:34 发布