java 复制文件夹中epub、html、txt文件 (按原来文件夹存放)

原来文件夹中的文件:有epub/html/txt

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * 复制文件夹中所有包含.epub后缀的文件
 * @author fibre
 * parameter SUFFIX = ".epub"
 */
public class CopyFileFolder {
	private static String SUFFIX = ".epub";

	public void copyFolder(String folder, String newPath) throws IOException{
		File old = new File(folder);
		File[] fileArray = old.listFiles();

		for(File file: fileArray){
			if(file.isFile()){
				if(file.getName().endsWith(SUFFIX)){
					//判断是否存在目的文件夹
					File newPathFile = new File(newPath);
					if(!newPathFile.isDirectory()){
						newPathFile.mkdirs();
					}
					//开始复制
					try {
						FileInputStream ins = new FileInputStream(file);
						FileOutputStream out = new FileOutputStream(newPath+"/"+file.getName());
						System.out.println("!!文件复制:"+file.getAbsolutePath()+"----->"+newPath+"/"+file.getName());
						byte[] b = new byte[1024 * 5];
						int len;
						while( (len=ins.read(b)) != -1){
							out.write(b);
						}
						ins.close();
						out.close();

					} catch (FileNotFoundException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}

			if(file.isDirectory()){
				copyFolder(file.getAbsolutePath(),newPath+"/"+file.getName());
				System.out.println("【文件夹复制】:"+file.getAbsolutePath()+"----->"+newPath+"/"+file.getName());
			}

		}	

	}

	public static void main(String[] arg) throws IOException{
		//可以改成复制后缀为html的文件
                //CopyFileFolder.SUFFIX = ".html";
		String folder = "F://Resource/知乎/epub/知乎各专业回答集锦";
		String target = "F://Resource/知乎/epub/知乎各专业回答集锦(epub)";
		CopyFileFolder copy = new CopyFileFolder();
		copy.copyFolder(folder,target);
	}

}

执行之后:按文件夹存放,只有epub文件

java 复制文件夹中epub、html、txt文件 (按原来文件夹存放)

时间: 2024-10-01 02:51:11

java 复制文件夹中epub、html、txt文件 (按原来文件夹存放)的相关文章

Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.Simple

C++实现从一个文件夹中读出所有txt文件

前段时间做项目需要读取一个文件夹里面所有的txt文件,查询资料后得到以下实现方法:首先了解一下这个结构体struct _finddata_t {    unsigned    attrib;    time_t      time_create;       time_t      time_access;       time_t      time_write;    _fsize_t    size;    char        name[260];};其中各成员变量的含义如下:unsi

C#中判断文件夹中存在某个txt文本

strFileName="D:\\strarray.txt"; if (File.Exists(strFileName))//判断文件是否存在 { }

在布局文件/layout中加的id,在R文件中却没有显示?

新建android工程,在/layout/activity_main.xml文件中,新建了一个Button, <Button android:id="@+id/person" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/person" /> 但是,该ID资源person却

提取文件夹中所有xml文件中的数据到txt(为人脸识别级联器使用的txt做准备)

[知识点]pugixml框架提取多个相同节点内容.遍历文件夹.保存到txt. xml文件由labelImg.exe软件标定图像生成.此博客把xml文件内容提取到txt中,为人脸识别opencv_annotation.exe.opencv_createsamples.exe.opencv_traincascade.exe服务 所有xml放到一个文件夹中,代码功能:遍历此文件夹,提取xml内容,保存到txt #include"pugixml\pugixml.hpp" #include<

R语言︱文件读入、读出一些方法罗列(批量xlsx文件、数据库、文本txt、文件夹)

笔者寄语:小规模的读取数据的方法较为简单并且多样,但是,批量读取目前看到有以下几种方法:xlsx包.RODBC包.批量转化成csv后读入. R语言中还有一些其他较为普遍的读入,比如代码包,R文件,工作空间等. source  #读取R代码dget    #读取R文件load    #读取工作空间 -------------------------------- SPSS-STATA格式的读入包--foreign 读取其他软件的格式foreigninstall.packages("foreign&

java学习(1):在一个文件夹下搜寻想要类型的所有文件

要求:在一个文件夹下,搜寻自己想要类型的所有文件(比如:我想要一个文件夹中的所有txt文件). import java.io.File; /** *获得一个文件下想要类型的所有的文件 *@author xcx *@time 2017年6月24日下午3:02:00 */ public class GetFile { public static void main(String[] args) { String file = "d:\\java";//文件夹的名称 File f = new

joomla T3框架中模板分离与自定义(local文件夹 实战研究)

1.重写布局配置(kjxxzx-corporate-home.ini) 模板商purity_iii提供的布局配置文件的路径:/templates/purity_iii/etc/layouts 自定义布局时,用户布局配置文件应放在:/templates/purity_iii/local/etc/layouts 2. 重写布局文件(kjxxzx-corporate-home.php) 模板商提供的布局文件的路径:/templates/purity_iii/tpls 如果用户想重写布局文件或区块文件,

VS中bin,app_code,app_data,app_browser,app_GlobalResources等文件夹的作用 .

1.  Bin文件夹 Bin文件夹包含应用程序所需的,用于控件.组件或者需要引用的任何其他代码的可部署程序集.该目录中存在的任何.dll文件将自动地链接到应用程序.如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用(ambiguous  reference)”异常的风险.换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则ASP.NET运行库不能决定应该使用哪一个程序集,从而抛出一个异常.在开发时,当我们重新命名一个项目或一个程序集的名称时,这是常见的错误.为了避免