copy一个文件到另一个文件,win+linux
来源:互联网 发布:pc6官方网站下载软件 编辑:程序博客网 时间:2024/06/07 03:54
之前在windows下开发的,没有注意系统之间的区别,结果上线之后,关于文件路径这一块就报错了。关于copy一个文件到另一个文件的实现总结如下:
(1)IoCopy.java
package com.loan.security.plug;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * @ClassName: IoCopy * @Description: TODO(将使用的文件copy到指定文件夹,图片-use) * @author jiayq* @date 2016年10月28日 上午9:53:20 * */public class IoCopy { /** * @Title: copy * @Description: TODO(文件copy) * @param @param f 文件 * @param @param f1 指定文件夹 * @param @throws IOException 设定文件 * @return void 返回类型 * @throws */ public void copy(File f,File f1) throws IOException{ //复制文件的方法! if(!f1.exists()){ f1.mkdir(); } if(!f1.exists()){//路径判断,是路径还是单个的文件 File[] cf = f.listFiles(); for(File fn : cf){ if(fn.isFile()){ FileInputStream fis = new FileInputStream(fn); FileOutputStream fos = new FileOutputStream(f1 + "\\" +fn.getName()); byte[] b = new byte[1024]; int i = fis.read(b); while(i != -1){ fos.write(b, 0, i); i = fis.read(b); } fis.close(); fos.close(); }else{ File fb = new File(f1 + "\\" + fn.getName()); fb.mkdir(); if(fn.listFiles() != null){//如果有子目录递归复制子目录! copy(fn,fb); } } } }else{ FileInputStream fis = new FileInputStream(f); FileOutputStream fos = new FileOutputStream(f1 + "\\" +f.getName()); byte[] b = new byte[1024]; int i = fis.read(b); while(i != -1){ fos.write(b, 0, i); i = fis.read(b); } fis.close(); fos.close(); } }}
(2)IoCopyController.java
package com.loan.security.web.controller;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import javax.servlet.ServletContext;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.context.ContextLoader;import org.springframework.web.context.WebApplicationContext;import com.loan.security.plug.IoCopy;/** * @ClassName: IoCopyController * @Description: TODO(将已用图片保存在use下,上传文件将在每天三点删除) * @author jiayq* @date 2016年10月27日 下午1:32:12 * */@Controller@RequestMapping("/io")public class IoCopyController {private final static Log log = LogFactory.getLog("myTest1");private String[] p;private String picName;private String relativePathFrom ;private String relativePathTo;private String url;@Value("${pro.name}")private String proName;/** * @Title: copyPicUrl * @Description: TODO(图片copy) * @param @param picUrl 新图片* @param @param oldUrl 旧图片* @param @return 设定文件 * @return String 返回类型 * @throws */@RequestMapping("/copyUrl")@ResponseBodypublic boolean copyPicUrl(String picUrl,String oldUrl){IoCopy ioCopy=new IoCopy();String os = System.getProperty("os.name");//非windows系统if(!os.toLowerCase().startsWith("win")){url=picUrl.split(proName)[1]; p=url.split("/"); picName=p[p.length-1]; relativePathFrom = url; relativePathTo = "/static/ueditor/jsp/upload/use/";}//windows系统else{ url=picUrl.split(proName)[1].replace("/", "\\\\"); p=url.split("\\\\"); picName=p[p.length-1]; relativePathFrom = url; relativePathTo = "\\static\\ueditor\\jsp\\upload\\use\\";}WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext(); ServletContext servletContext = webApplicationContext.getServletContext(); String absolutePathFrom = servletContext.getRealPath(relativePathFrom);String absolutePathTo = servletContext.getRealPath(relativePathTo); File ff=new File(absolutePathTo+File.separator+picName);log.info(" ----> absolutePathTo= "+ff.getAbsolutePath()+" file-separator="+File.separator);if(!(ff.isFile()&&ff.exists())){//use文件夹中不存在此文件时copyFile f=new File(absolutePathFrom);File f1=new File(absolutePathTo);try {ioCopy.copy(f,f1);} catch (IOException e) {e.printStackTrace();}}return true;}}
阅读全文
0 0
- copy一个文件到另一个文件,win+linux
- linux 将find的文件copy到另一个文件夹
- android 获取指定路径下所有文件,将文件从一个目录copy到另一个目录,执行linux命令
- [Linux] 复制一个文件的内容到另一个文件
- 批处理 copy文件到另一个盘符文件
- VC 如何Copy一个项目的资源文件中的对话框到另一个项目
- VC 如何Copy一个项目的资源文件中的对话框到另一个项目
- 实现从一个目录copy文件到另一个目录(学习二)
- VC 如何Copy一个项目的资源文件中的对话框到另一个项目
- linux怎么将一个文件移动到另一个目录下
- Win下的文件copy到linux总是多了个^M,如何去掉?
- java移动一个文件到另一个文件夹
- Linux把一个文件标准输出输入到另一个文件中
- linux怎么将一个文件下的部分文件,拷贝到另一个文件夹下
- [笔记] linux dd命令将一个文件填充到另一个文件中
- linux系统下将一个文件拷贝到另一个文件下的命令行操作
- 在linux环境下,复制一个文件到另一个文件的末尾
- linux复制文件到另一个文件夹
- svn 拉分支
- google代理服务器设置
- Python中如何使用以及去除时间序列数据中的趋势信息
- 记录下CSDN博客排上名,嘻嘻,不再是千里之外了
- 对决
- copy一个文件到另一个文件,win+linux
- 欢迎使用CSDN-markdown编辑器
- 喜欢发朋友圈的,都是什么人?有你吗----众智云
- BigDecimal运算
- linux系统如何连接到大学校园网
- 对接微信不能对接上--------设置失败,请重试
- WatchOS系统开发大全(2)-WatchApp运行原理
- 文字两行超出隐藏兼容多浏览器
- 删除tomcat服务器中文件的方法