java 使用smb获取共享文件夹文件 和上传到共享文件夹(smb协议 局域网共享文件夹文件操作)
首先导入依赖<dependency><groupId>jcifs</groupId><artifactId>jcifs</artifactId><version>1.3.17</version></dependency>工具类(上代码)import java.io.BufferedOutputStrea
·
首先导入依赖
<dependency>
<groupId>jcifs</groupId>
<artifactId>jcifs</artifactId>
<version>1.3.17</version>
</dependency>
工具类(上代码)
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.BufferedInputStream;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;
public class CopyFile {
/**
* @param GoalUrl获取文件地址
* 远程路径 smbGetone://192.168.75.204/test/新建 文本文档.txt
* @throws IOException
*/
public static void smbGetone(String GoalUrl) throws IOException {
SmbFile smbFile = new SmbFile(GoalUrl);
int length = smbFile.getContentLength();// 得到文件的大小
byte buffer[] = new byte[length];
SmbFileInputStream in = new SmbFileInputStream(smbFile);
// 建立smb文件输入流
while ((in.read(buffer)) != -1) {
System.out.write(buffer);
System.out.println(buffer.length);
}
in.close();
}
/**
* //smbGetall("smb://192.168.2.100//ceshi//","C:/copy");
* @param GoalUrl获取文件地址
* @param localUrl本地地址
*/
public static void smbGetall(String GoalUrl, String localUrl) {
InputStream in = null;
OutputStream out = null;
try {
SmbFile remoteFile = new SmbFile(GoalUrl);
if (remoteFile == null) {
System.out.println("不存在");
return;
}
SmbFile[] listFiles = remoteFile.listFiles();
for(int i = 0; i < listFiles.length; i++) {
String fileName = listFiles[i].getName();
File localFile = new File(localUrl + File.separator + fileName);
in = new BufferedInputStream(new SmbFileInputStream(remoteFile+fileName));
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();
}
}
}
/**
* UploadFile("smb://192.168.2.100//FileServer//upload//","C:/copy/ceshi.pdf");
* @param GoalUrl目标位置
* @param localUrl本地文件地址
*/
public static void UploadFile(String GoalUrl, String localUrl) {
InputStream in = null;
OutputStream out = null;
try {
File localFile = new File(localUrl);
String fileName = localFile.getName();
SmbFile remoteFile = new SmbFile(GoalUrl + "/" + 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();
}
}
}
}
感兴趣的小伙伴可以去试试。。。
更多推荐
所有评论(0)