上传者: shengyi1987
|
上传时间: 2021-09-22 23:37:47
|
文件大小: 20KB
|
文件类型: DOCX
Java文件夹复制(远程复制(网络传输),用于远程备份文件)(支持文件夹,嵌套子文件夹)
import java.io.*;
import java.util.*;
public class FileSelection {
private File rootDirectory;//根目录
private File[] fileList;//文件目录下面的文件列表(包括目录,用于多次判断)
private ArrayList fileArrayList; // 用于存储文件(只是文件)列表
//初始化参数
public FileSelection() {
fileArrayList=new ArrayList();
rootDirectory = new File("Test");
rootDirectory.mkdir();
}
//获得文件(不包括目录)的列表
public void initFileArrayList() {
if (rootDirectory.isDirectory()) {
//遍历目录下面的文件和子目录
fileList = rootDirectory.listFiles();
for (int i = 0; i < fileList.length; i++) {
//如果是文件,添加到文件列表中
if(fileList[i].isFile()){
fileArrayList.add(fileList[i]);
}
//否则递归遍历子目录
else if (fileList[i].isDirectory()) {
fileList[i].mkdir();
rootDirectory=fileList[i];
initFileArrayList();
}
}
}
}
//将文件信息添加到列表中
public void addFiles(File f){
fileArrayList.add(f);
}
//访问器返回文件列表
public ArrayList getFileArrayList() {
return fileArrayList;
}
}
--------------------
BackupClient.java
package com.xinxin.Client;
import java.io.*;
import java.net.*;
/**
*
* @author Administrator
*@version 1.0
*BackupClient类实现文件的传输到服务器
*/
public class BackupClient implements Runnable{
private int port;//服务器端口
private InetAddress ipAddress;//服务器IP地址
private Socket clientSocket;//客户端套接字
private InputStream inputStream;//网络输入流
private OutputStream outputStream;//网络输出流
private File file;
//构造函数(获得服务器端IP地址和监听端口号)
public BackupClient(InetAddress ipAddress,int port,File file){
this.ipAddress=ipAddress;
this.port=port;