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
分享到:
相关推荐
最近tomcat做了负载均衡,碰到一个难题,就是上传文件的共享问题。 最后使用的解决方案是使用一个共享地址,该地址...每个服务器通过smb与共享文件进行通信。 实现上传文件到网络共享文件夹和从网络共享文件夹下载文件
java调用cmd命令实现访问windows共享目录(需不需要密码均可),然后根据指定文件路径下载文件到我们自己配置的本地目录,main函数为测试代码
java读取共享文件使用jcifs-1.1.11.jar 的SmbFile 类使用用户名密码共享目录操作共享文件
java读取局域网共享机器文件 java读取局域网共享机器文件
java 读取远程共享文件,一个操作简单的读取远程资源的控件。
java向其他机器写文件 共享机器写文件
提供java远程访问的方法,类似File
java访问linux;通过linux主机ip,端口,用户名,密码,获取linux链接,输入文件路径可批量的下载linux文件,mian函数为测试代码
java 读取局域网机器上共享文件,以经过测试。
java共享文件下载依赖包jcifs-1.3.3.jar
JAVA SMB共享文件夹操作文件jar支持smb2、smb3.rar
使用java读取局域网中window共享文件夹下内容保存到本地
Java写的文件共享服务器(源代码)Java写的文件共享服务器(源代码)Java写的文件共享服务器(源代码)
读取Samba文件使用 jcifs java 库从 Samba 读取文件。
java访问https网址下载文件,当网页需要下载证书的时候,代码和操作步骤齐全。
通过jcifs实现java访问网络共享文件 jcifs 是 cifs(common internet file system) java的实现 smb (service message block) to be cifs jcifs 是一个开源项目 可从http://jcifs.samba.org/下载 SmbFileInputStream...
java获取网络音乐文件时长,自己整理的三种方法
smb协议访问带用户名密码的共享文件夹,是一个完全用Java开发的SMB客户端库。它紧密地遵循CIFS规范(是Microsoft Windows平台标准文件共享协议),支持Unicode,命令管道,批处理,线程化调用者的IO复用,加密认证,...
Java自带的HttpURLConnection访问接口文件上传, 含普通参数值传递和文件传递
本程序实现局域网内文件共享,下载,聊天等操作