java 使用smb获取共享文件夹文件 和上传到共享文件夹(smb协议 局域网共享文件夹文件操作)

首先导入依赖

			<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
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值