`

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

  }

  }

  }

分享到:
评论

相关推荐

    Java对Samba进行上传与下载文件-jcifs

    2. **建立连接**:然后,你可以通过SmbFile构造函数创建一个指向Samba服务器共享目录的SmbFile对象。URL格式通常为`smb://[username[:password]@]server/share[路径]`。 ```java SmbFile smbFile = new SmbFile(...

    samba访问例子1

    通过Samba,Linux和Unix服务器可以被Windows客户端识别,并能像访问本地资源一样访问其上的共享目录。 **安装Samba** 在大多数Linux发行版中,你可以通过包管理器轻松安装Samba。例如,在Ubuntu或Debian上: ```...

    samba文件一起来

    5. 配置Samba:编辑`/etc/samba/smb.conf`,设置共享目录、用户权限等。 6. 启动Samba服务:使用`sudo systemctl start smbd.nmbd`启动服务,并可使用`sudo systemctl enable smbd.nmbd`使其在开机时自动启动。 ...

    java 操作windows 共享目录方法介绍

    ### Java操作Windows共享目录的方法介绍 #### 一、SMB协议概述 SMB(Server Message Block)协议,也称为CIFS(Common Internet File System),是一种客户端/服务器类型的网络协议,主要用于提供共享访问文件、...

    samba服务器搭建

    然后,我们需要建立一个本地共享目录并赋予相应权限。例如,我们可以创建一个名为"/var/samba"的目录,然后使用chown命令赋予"samba"用户所有权和权限。 修改Samba配置文件 接下来,我们需要修改Samba配置文件"/...

    Samba安装和配置教程

    **四、创建共享目录** 为了实现文件共享,需要在服务器上创建一个目录,例如`/smb`,并赋予所有必要的权限: ```bash # 创建共享目录 mkdir /smb # 设置权限,确保Samba用户可以读写 chmod 777 /smb ``` **五、...

    ReadSambaFile:使用 jcifs java 库从 Samba 读取文件

    在Java编程环境中,有时我们需要访问网络上的共享文件系统,例如Samba服务器。Samba是一种流行的开源软件,它允许Linux、Windows和其他操作系统之间的文件共享。为了在Java程序中读取Samba(CIFS)共享文件,我们...

    Java读写Windows共享文件夹的方法实例

    Java编程语言在访问Windows共享文件夹时,通常会利用第三方库如JCIFS(Java CIFS Client)来实现。JCIFS(Java Community Internet File System)是一个完全用Java编写的开源框架,它实现了SMB(Server Message ...

    JAVA SMB共享文件夹操作文件jar支持smb2、smb3.rar

    它支持SMB2和SMB3协议,允许Java应用程序连接到SMB共享,执行读写文件、创建目录、删除文件等操作。Smbj库提供了异步和同步API,可以方便地集成到多线程环境中。 3. **mbassador-1.3.2.jar**:这是一个事件驱动框架...

    上传文件到samba服务器

    Samba是一个开源软件,允许Linux/Unix系统与Windows网络共享文件,实现了SMB/CIFS(Server Message Block/Common Internet File System)协议。 首先,我们需要理解SMB协议。这是一种广泛使用的网络文件共享协议,...

    使用smbj.jar访问共享文件夹,解决SMB2/SMB3共享文件夹访问的问题

    在IT行业中,尤其是在Java开发领域,访问网络上的共享文件夹是一项常见的任务。有时,我们可能需要从一个系统读取或写入另一个系统上的文件,这时就需要利用特定的库来实现。"smbj.jar"是一个专门用于处理SMB...

    Samba和NFS服务器

    Samba是一组开源软件,它的主要目标是实现Linux系统与Windows环境之间的文件和打印机共享。通过支持Server Message Block (SMB) 协议,Samba允许Linux机器与Windows系统无缝交互,使得用户能够在不同操作系统之间...

    Android_scanSambaserver-master.zip

    3. **SambaConnection.java**: 这个类可能实现了连接到特定Samba服务器并读取其共享目录的功能。它可能使用了上述提到的Java SMB库,通过建立TCP连接来访问共享资源。 4. **Adapter类**: 如`SambaListAdapter.java`...

    linux上部署JAVA应用.ppt

    我们可以使用 `#chmod 777 /home/huaxia` 命令设置用户根目录的共享权限。然后,我们可以从 Windows 上访问 Linux 主机,使用 `\\linux 主机 IP` 访问共享文件夹。 4. JDK 的安装和配置 在 Linux 主机上,我们需要...

    虚拟机LINUX与主机WINDOWS文件共享

    可以使用 smbmount 命令将 WINDOWS 机子的共享目录挂载到 LINUX 机子上。例如: #smbmount //10.0.0.10/music /home/user/music -o "username=share,password=yeah" 卸载已经挂载的文件可以使用以下命令: #...

    jcifs实现集成登录

    3. **资源共享**:jcifs允许Java应用访问和操作Windows网络共享,如读取、写入文件,创建目录等。这在多系统集成的环境中特别有用,因为用户登录一次后,可以在不同的系统间无缝切换,访问共享资源。 4. **安全增强...

    jcifs-1.3.17.jar

    在这个场景中,`jcifs-1.3.17.jar`是一个关键的组件,它为开发者提供了在Java环境中进行网络邻居共享目录的操作能力。 **JCIFS库的功能与应用:** 1. **文件上传**:JCIFS库提供了API,使得Java程序能够将本地文件...

    微信扫码支付模式1和2_java

    配置Samba涉及安装服务、配置文件(`smb.conf`)、创建共享目录、设置权限以及启动服务等步骤。 总结,微信扫码支付模式1和2提供了灵活的支付选择,Java开发者可以通过微信支付SDK来实现相关功能。在实际开发中,...

Global site tag (gtag.js) - Google Analytics