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());
}
}
}
分享到:
相关推荐
2. **建立连接**:然后,你可以通过SmbFile构造函数创建一个指向Samba服务器共享目录的SmbFile对象。URL格式通常为`smb://[username[:password]@]server/share[路径]`。 ```java SmbFile smbFile = new SmbFile(...
通过Samba,Linux和Unix服务器可以被Windows客户端识别,并能像访问本地资源一样访问其上的共享目录。 **安装Samba** 在大多数Linux发行版中,你可以通过包管理器轻松安装Samba。例如,在Ubuntu或Debian上: ```...
5. 配置Samba:编辑`/etc/samba/smb.conf`,设置共享目录、用户权限等。 6. 启动Samba服务:使用`sudo systemctl start smbd.nmbd`启动服务,并可使用`sudo systemctl enable smbd.nmbd`使其在开机时自动启动。 ...
### Java操作Windows共享目录的方法介绍 #### 一、SMB协议概述 SMB(Server Message Block)协议,也称为CIFS(Common Internet File System),是一种客户端/服务器类型的网络协议,主要用于提供共享访问文件、...
然后,我们需要建立一个本地共享目录并赋予相应权限。例如,我们可以创建一个名为"/var/samba"的目录,然后使用chown命令赋予"samba"用户所有权和权限。 修改Samba配置文件 接下来,我们需要修改Samba配置文件"/...
**四、创建共享目录** 为了实现文件共享,需要在服务器上创建一个目录,例如`/smb`,并赋予所有必要的权限: ```bash # 创建共享目录 mkdir /smb # 设置权限,确保Samba用户可以读写 chmod 777 /smb ``` **五、...
在Java编程环境中,有时我们需要访问网络上的共享文件系统,例如Samba服务器。Samba是一种流行的开源软件,它允许Linux、Windows和其他操作系统之间的文件共享。为了在Java程序中读取Samba(CIFS)共享文件,我们...
Java编程语言在访问Windows共享文件夹时,通常会利用第三方库如JCIFS(Java CIFS Client)来实现。JCIFS(Java Community Internet File System)是一个完全用Java编写的开源框架,它实现了SMB(Server Message ...
它支持SMB2和SMB3协议,允许Java应用程序连接到SMB共享,执行读写文件、创建目录、删除文件等操作。Smbj库提供了异步和同步API,可以方便地集成到多线程环境中。 3. **mbassador-1.3.2.jar**:这是一个事件驱动框架...
Samba是一个开源软件,允许Linux/Unix系统与Windows网络共享文件,实现了SMB/CIFS(Server Message Block/Common Internet File System)协议。 首先,我们需要理解SMB协议。这是一种广泛使用的网络文件共享协议,...
在IT行业中,尤其是在Java开发领域,访问网络上的共享文件夹是一项常见的任务。有时,我们可能需要从一个系统读取或写入另一个系统上的文件,这时就需要利用特定的库来实现。"smbj.jar"是一个专门用于处理SMB...
Samba是一组开源软件,它的主要目标是实现Linux系统与Windows环境之间的文件和打印机共享。通过支持Server Message Block (SMB) 协议,Samba允许Linux机器与Windows系统无缝交互,使得用户能够在不同操作系统之间...
3. **SambaConnection.java**: 这个类可能实现了连接到特定Samba服务器并读取其共享目录的功能。它可能使用了上述提到的Java SMB库,通过建立TCP连接来访问共享资源。 4. **Adapter类**: 如`SambaListAdapter.java`...
我们可以使用 `#chmod 777 /home/huaxia` 命令设置用户根目录的共享权限。然后,我们可以从 Windows 上访问 Linux 主机,使用 `\\linux 主机 IP` 访问共享文件夹。 4. JDK 的安装和配置 在 Linux 主机上,我们需要...
可以使用 smbmount 命令将 WINDOWS 机子的共享目录挂载到 LINUX 机子上。例如: #smbmount //10.0.0.10/music /home/user/music -o "username=share,password=yeah" 卸载已经挂载的文件可以使用以下命令: #...
3. **资源共享**:jcifs允许Java应用访问和操作Windows网络共享,如读取、写入文件,创建目录等。这在多系统集成的环境中特别有用,因为用户登录一次后,可以在不同的系统间无缝切换,访问共享资源。 4. **安全增强...
在这个场景中,`jcifs-1.3.17.jar`是一个关键的组件,它为开发者提供了在Java环境中进行网络邻居共享目录的操作能力。 **JCIFS库的功能与应用:** 1. **文件上传**:JCIFS库提供了API,使得Java程序能够将本地文件...
配置Samba涉及安装服务、配置文件(`smb.conf`)、创建共享目录、设置权限以及启动服务等步骤。 总结,微信扫码支付模式1和2提供了灵活的支付选择,Java开发者可以通过微信支付SDK来实现相关功能。在实际开发中,...