public class UploadDownloadUtil
{
/**
* 从共享目录拷贝文件到本地
* @param remoteUrl 共享目录上的文件路径
* @param localDir 本地目录
*/
public void smbGet(String remoteUrl, String localDir)
{
InputStream in = null;
OutputStream out = null;
try
{
SmbFile remoteFile = new SmbFile(remoteUrl);
//这一句很重要
remoteFile.connect();
if (remoteFile == null)
{
System.out.println("共享文件不存在");
return;
}
String fileName = remoteFile.getName();
File localFile = new File(localDir + File.separator + fileName);
in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
out = new BufferedOutputStream(new FileOutputStream(localFile));
byte[] buffer = new byte[1024];
while (in.read(buffer) != -1)
{
out.write(buffer);
buffer = new byte[1024];
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
out.close();
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 从本地上传文件到共享目录
* @Version1.0 Sep 25, 2009 3:49:00 PM
* @param remoteUrl 共享文件目录
* @param localFilePath 本地文件绝对路径
*/
public void smbPut(String remoteUrl, String localFilePath)
{
InputStream in = null;
OutputStream out = null;
try
{
File localFile = new File(localFilePath);
String fileName = localFile.getName();
SmbFile remoteFile = new SmbFile(remoteUrl + "/" + fileName);
in = new BufferedInputStream(new FileInputStream(localFile));
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
byte[] buffer = new byte[1024];
while (in.read(buffer) != -1)
{
out.write(buffer);
buffer = new byte[1024];
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
out.close();
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
UploadDownloadUtil test = new UploadDownloadUtil();
// smb:域名;用户名:密码@目的IP/文件夹/文件名.xxx
// test.smbGet("smb://szpcg;jiang.t:xxx@192.168.193.13/Jake/test.txt",
// "c://") ;
// test.smbPut("smb://szpcg;jiang.t:xxx@192.168.193.13/Jake",
// "c://test.txt");
//用户名密码不能有强字符,也就是不能有特殊字符,否则会被作为分断处理
test.smbGet("smb://CHINA;xieruilin:123456Xrl@10.70.36.121/project/report/网上问题智能分析助手使用文档.doc",
"c://Temp/");
}
}
需要导入包jcifs-1.3.15.jar
分享到:
相关推荐
标题“Java访问共享文件”指的是使用Java编程语言来操作网络上的共享文件系统,这通常涉及到Windows的SMB(Server Message Block)协议或者更现代的CIFS(Common Internet File System)协议。这篇博客文章可能详细...
- 在获取到共享目录的访问权限后,我们可以使用Java的I/O流来读取和下载文件。这通常涉及`FileInputStream`(用于读取远程文件)和`FileOutputStream`(用于写入本地文件)。`SmbUtils.java`中的某个方法可能负责从...
Samba是一个开源软件,允许Linux/Unix系统与Windows系统之间进行文件共享,而jcifs是Java的一个库,它提供了对SMB(Server Message Block)协议的支持,使得Java程序能够无缝地操作Samba网络共享资源。 首先,我们...
**jcifs API 开发文档与...jcifs API 为Java开发者提供了一个强大而灵活的工具,帮助他们轻松地整合网络文件共享功能到他们的应用程序中。了解并熟练掌握jcifs API 的使用,能有效提高开发效率,扩展应用的功能范围。
在Java编程环境中,处理共享文件是一项常见的任务,特别是在企业级应用中,可能需要访问网络上的文件系统资源。Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message ...
4. **使用jcifs库**:jcifs库是Java的一个第三方库,它实现了CIFS(Common Internet File System)协议,使得Java可以方便地操作Windows网络共享。安装jcifs后,你可以像这样创建SmbFile对象并读取文件: ```java ...
jcifs-1.3.14.jar是jcifs库的一个版本,提供了对CIFS协议的支持,使得Java开发者可以实现跨平台的文件共享和传输。 CIFS(Common Internet File System)是一种广泛使用的文件共享协议,尤其在Windows环境中。它...
标题中的“jcifs java远程访问”指的是使用JCIFS库来实现在Java环境中远程访问文件系统。这在分布式系统、云存储以及跨网络协作的场景中非常有用。 描述中提到“提供java远程访问的方法,类似File”,意味着JCIFS库...
JCIFS(Java CIFS)是一个Java类库,它允许Java应用程序通过CIFS(Common Internet File System)协议访问网络文件系统和打印机。CIFS是SMB(Server Message Block)协议的一种实现,广泛用于Windows系统之间的文件...
在IT行业中,尤其是在Java开发领域,访问网络上的共享文件夹是一项常见的任务。有时,我们可能需要从一个系统读取或写入另一个系统上的文件,这时就需要利用特定的库来实现。"smbj.jar"是一个专门用于处理SMB...
首先,Java中没有内置的直接支持网络共享文件夹访问的API,但可以通过Java的`java.net`和`java.io`包中的类来实现。主要涉及到的类有`Socket`、`BufferedReader`、`BufferedWriter`和`FileInputStream`等。 1. **...
Java SMB(Server Message Block)库是用于在Java应用程序中访问和操作网络共享文件系统的工具,主要应用于Windows环境,但也可支持其他支持SMB协议的系统。SMB是一种网络通信协议,允许网络上的计算机共享文件、...
在Java编程环境中,jcifs-1.3.15.jar是一个非常重要的库,它使得开发者能够方便地处理SMB(Server Message Block)协议,也就是Windows操作系统中常用的文件共享协议。这个库允许Java程序访问局域网内的共享文件,...
SMB是一种广泛用于Windows网络中的文件共享协议,但jcifs使得在Java应用程序中也能方便地实现这一功能,打破了操作系统之间的界限。 描述中提到"jar包与项目包",这表明jcifs_1.3.1.jar可能是jcifs库的特定版本,...
Java Community Interface for File Sharing (JCIFS) 是一个开源的Java库,它允许Java应用程序能够访问和操作Microsoft的网络文件共享协议,例如SMB(Server Message Block)和CIFS(Common Internet File System)...
Java在Windows环境中实现文件共享涉及多个关键知识点,包括文件I/O操作、网络编程以及系统权限配置。以下将详细阐述这些内容: 1. **Java文件I/O操作**:Java提供了丰富的API来处理文件读写和目录操作。核心类如`...
- jcifs-ng是一个Java实现的SMB客户端库,适用于Android平台,它提供了访问SMB共享文件的功能。 - 使用jcifs-ng,开发者需要创建SmbFile对象,指定服务器地址、共享路径和用户名/密码,然后可以进行文件的读写操作...
### Java操作Windows共享目录的方法介绍 #### 一、SMB协议概述 SMB(Server Message Block)协议,也称为CIFS...通过对这些内容的学习,开发者可以更好地掌握如何利用Java语言进行网络文件共享操作的技术要点。
3. **资源共享**:jcifs允许Java应用访问和操作Windows网络共享,如读取、写入文件,创建目录等。这在多系统集成的环境中特别有用,因为用户登录一次后,可以在不同的系统间无缝切换,访问共享资源。 4. **安全增强...
在这个场景下,我们可以使用SMB(Server Message Block)协议,这是一种网络文件共享协议,常见于Windows系统,但同样可以应用于Linux环境。Java中有一个名为jcifs的库,它允许我们通过SMB接口来操作远程文件系统。 ...