java递归实现复制一个文件夹下所有文件功能

网友投稿 243 2022-12-30


java递归实现复制一个文件夹下所有文件功能

今天开始学习java的IO,学了一个复制文件的例子程序后想自己实现以下如何复制一个文件夹,复制文件的例子程序如下:

package io.github.liuzhan214;

import java.io.File;

imphttp://ort java.io.IOException;

public class Main {

void solve() {

File file = new File("F:\\javaIOTest\\new.txt");

if(!file.exists()) {

try {

file.createNewFile();

}

catch(IOException e) {

e.printStackTrace();

}

}

else {

System.out.println(file.getName());

}

File dir = new File("F:\\javaIOTest");

System.out.println(dir.getName());

if(dir.isDirectory()) {

String[] filename = dir.list();

for(String str: filename) {

File tempFile = new File(dir.getPath() + File.separator + str);

if(tempFile.isFile()) {

System.out.println("File: " + tempFile.getPath());

}

http:// else if(tempFile.isDirectory()) {

System.out.println("Dir: " + tempFile.getPath());

}

}

}

}

public static void main(String[] args) {

Main main = new Main();

main.solve();

}

}

crhttp://eateNewFile可以创建一个文件

mkdir()可以创建一个目录

FileInputStream和FileOutoutStream可以实现文件的复制

实现文件夹复制的代码如下

package io.github.liuzhan214;

import java.util.Scanner;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

public class Main {

Scanner scanner = new Scanner(System.in);

void solve() {

String inputString = scanner.next();

StrinxVqBHg outputString = scanner.next();

File inputFile = new File(inputString);

File outputFile = new File(outputString);

if(inputFile.exists() == false || outputFile.exists() == false) {

System.out.println("输入或者输出路径不合法!"); return;

}

File sourceFile = inputFile;

File destFile = new File(outputFile.getPath() + File.separator + inputFile.getName());

try {

myCopy(sourceFile,destFile);

} catch(Exception e) {

System.out.println("复制出现错误!"); return;

}

System.out.println(sourceFile.getPath() + "->" + destFile.getPath() + "复制成功!");

}

void myCopy(File sourceFile,File destFile) throws Exception{

//保证sourceFile一定存在,destFile一定不存在,因此先创建destFile

if(sourceFile.isFile()) destFile.createNewFile();

else if(sourceFile.isDirectory()) destFile.mkdir();

if(sourceFile.isFile()) copy(sourceFile,destFile);

else if(sourceFile.isDirectory()) {

File[] files = sourceFile.listFiles();

for(File ele : files) {

File newDestFile = new File(destFile.getPath() + File.separator + ele.getName());

myCopy(ele,newDestFile);

}

}

}

void copy(File sourceFile,File destFile) throws Exception{

//保证sourceFile一定存在,destFile一定存在

FileInputStream inputStream = new FileInputStream(sourceFile);

FileOutputStream outputStream = new FileOutputStream(destFile);

byte[] arr = new byte[256];

int len = 0;

while((len = inputStream.read(arr)) > 0) {

outputStream.write(arr, 0, len);

}

inputStream.close();

outputStream.close();

}

void close() {

scanner.close();

}

public static void main(String[] args) {

Main main = new Main();

main.solve();

main.close();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:你做了哪些接口测试工具(软件测试接口测试工具)
下一篇:开源API网关组件(net api网关)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~