在linux下复制文件

说明:在linux下以绝对路径方式复制文件,以下代码实现的是把一个文件夹里面所有的文件复制到另一个文件夹里面

特别注意:linux和window差别比较大的地方:文件夹(或文件)的可读可写等权限,所以需要复制的文件必须可读,目标文件夹必须可写!我已经在此栽了好几个跟头了、

以下是具体代码:

        /*** 获得文件名.
	 * @return List
	 */
	public List<Map<String,Object>> getAddrs() {
		List<Map<String,Object>> listmap = new ArrayList<Map<String,Object>>();

		try {
		        //linux环境下绝对路径,需要复制的文件所在的文件夹
			String pathFrom = "/home/dingbing/tomcat7.0.47/webapps/FuploadM/upload/";
			//linux环境下绝对路径,需要复制的文件所在的文件夹
			String pathTo = "/home/dingbing/tomcat7.0.47/webapps/filematch/resources/image/uploadNew/";

//			String pathFrom = "C:/Users/AMCC/Desktop/FuploadM/upload";  windows环境下绝对路径,需要复制的文件所在的文件夹
//			String pathTo = 
//					"C:/Users/AMCC/Desktop/FileManager/src/main/webapp/resources/image/uploadNew/";    windows环境下绝对路径,目标文件夹
			
			File file = new File(pathFrom);   
		        // get the folder list   
		        File[] array = file.listFiles();
		        System.out.println("length: " + array.length);
		        if(array != null) {  
		        for(int i=0;i<array.length;i++){ 
		        	Map<String, Object> map = new HashMap<String, Object>();
		            if(array[i].isFile()){
		                // only take file name   
		            	map.put("file_name", array[i].getName());
		            	//执行复制
		            	copyFile(pathFrom + array[i].getName(), pathTo + array[i].getName());
		            	listmap.add(map);
		            }
		        }
		     }
		} catch (Exception e) {
			e.printStackTrace();
		}       
		return listmap;
	}
	
	/***复制单个文件
	 *
	 */
	
	public  void  copyFile(String  oldPath,  String  newPath)  {
		System.out.println("coping file ...");  
	       try  {  
	           int  bytesum  =  0;  
	           int  byteread  =  0;  
	           File  oldfile  =  new  File(oldPath);  
	           if  (oldfile.exists())  {  //文件存在时  
	               InputStream  inStream  =  new  FileInputStream(oldPath);  //读入原文件  
	               FileOutputStream  fs  =  new  FileOutputStream(newPath);  
	               byte[]  buffer  =  new  byte[1444];  
	               int  length;  
	               while  (  (byteread  =  inStream.read(buffer))  !=  -1)  {  
	                   bytesum  +=  byteread;  //字节数  文件大小  
	                   System.out.println(bytesum);  
	                   fs.write(buffer,  0,  byteread);  
	               }  
	               inStream.close();  
	           }  
	       }  
	       catch  (Exception  e)  {  
	           System.out.println("复制单个文件操作出错");  
	           e.printStackTrace();  
	 
	       }  
	 
	   }






转载于:https://my.oschina.net/beanGo/blog/212775

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值