这个Java软件一共有两个类,下面是FileOperator类
/** *//**
*<pre>
*FileOperator
*@author 牟勇
*版本:0.0.1 Build 18
*创建日期:2007.6.6 20:36:03
*功能说明:完成文件的复制,删除等功能
*功能1:完成文件的复制
*功能2:完成文件的删除
*
*版本:0.0.2 Build 52
*修改日期:2007.6.6 16:12:26
*增加:写待同步文件根目录至指定文件中
*增加:同步文件的方法
*</pre>
*/
package com.speakmore.family.file;
import java.io.*;
public class FileOperator...{
static FileInputStream br;
static FileOutputStream bw;
static PrintWriter pw=null;
/** *//**
*copyFile
*复制源文件到目标文件
*@param targetFile 复制的目标文件名
*@param sourceFile 复制的源文件名
*@return 复制文件是否成功,true表示成功,false表示不成功
*如果源文件名是一个目录且目标文件名不存在,则创建它
*如果源文件名是一个目录且目标文件名存在,则忽略
*如果源文件名是一个文件且目标文件名不存在,则创建它
*如果源文件名是一个文件且比目标文件新,则覆盖它
*如果源文件名是一个文件且比目标文件旧,则忽略
*
*/
public static boolean copyFile(File targetFile,File sourceFile)...{
//如果源文件名是一个目录且目标文件名不存在,则创建它
if(sourceFile.isDirectory()&&!targetFile.exists())...{
System.out.println("目录且不存在:"+targetFile.toString());
targetFile.mkdirs();
return true;
}
//如果源文件名是一个目录且目标文件名存在,则忽略
if(sourceFile.isDirectory()&&targetFile.exists())...{
System.out.println("目录且存在:"+targetFile.toString());
return true;
}
//如果源文件名是一个文件且目标文件名不存在,则创建它
if(sourceFile.isFile()&&!targetFile.exists())...{
System.out.println("文件且文件不存在:"+targetFile.toString());
return writer(targetFile,sourceFile);
}
//如果源文件名是一个文件且比目标文件新,则覆盖它
if(sourceFile.isFile()&&sourceFile.lastModified()>
targetFile.lastModified())...{
System.out.println("文件且文件存在且要修改:"+targetFile.toString());
return writer(targetFile,sourceFile);
}
//如果源文件名是一个文件且比目标文件旧,则忽略
if(sourceFile.isFile()&&sourceFile.lastModified()<=
targetFile.lastModified())...{
System.out.println("文件且文件存在:"+targetFile.toString());
return true;
}
//如果前五种条件都不符合,则表示无法复制文件,返回false
return false;
}
/** *//**
*copyFile
*复制源文件到目标文件
*@param targetFilePath 复制的目标文件路径
*@param sourceFilePath 复制的源文件路径
*@return 复制文件是否成功,true表示成功,false表示不成功
*如果源文件名是一个目录且目标文件名不存在,则创建它
*如果源文件名是一个目录且目标文件名存在,则忽略
*如果源文件名是一个文件且目标文件名不存在,则创建它
*如果源文件名是一个文件且比目标文件新,则覆盖它
*如果源文件名是一个文件且比目标文件旧,则忽略
*/
public static boolean copyFile(String targetFilePath,String sourceFilePath)...{
return copyFile(new File(targetFilePath),new File(sourceFilePath));
}
/** *//**
*deleteFile
*删除目标文件
*@param targetFile 将被删除的文件
*@return true表示删除成功,false表示不成功
*/
public static boolean deleteFile(File targetFile)...{
return targetFile.delete();
}
/** *//**
*deleteFile
*删除目标文件
*@param targetFilePath 将被删除的文件路径
*@return true表示删除成功,false表示不成功
*/
public static boolean deleteFile(String targetFilePath)...{
return deleteFile(new File(targetFilePath));
}
//使用io对文件进行读写
private static boolean writer(File targetFile,File sourceFile)...{
String tempstr="";
try...{
br=new FileInputStream(sourceFile);
bw=new FileOutputStream(targetFile);
byte[] fileContent=new byte[1024];
int readed=0;
int readSum=0;
while((readed=br.read(fileContent))!=-1)...{
readSum+=readed;
bw.write(fileContent);
}
bw.close();
br.close();
return true;
}catch(Exception e)...{
e.printStackTrace();
return false;
}
}
/** *//**
*writeFileIndex
*将需要搜索的整个文件目录树写入指定的文件中
*@param filePath 需要搜索的文件根目录
*@param filename 指定的写入文件名
*@return 无
*/
public static boolean writeFileIndex(String filePath,String filename)...{
boolean flag=false;
try...{
//创建索引文件
pw=new PrintWriter(new BufferedWriter(
new FileWriter(filename)));
}catch(IOException e)...{
e.printStackTrace();
}
String[] temp=new File(filePath).list();
pw.println(filePath);
for(int i=0;i<temp.length;i++)...{
if(new File(filePath+File.separator+temp[i]).isFile())...{
pw.println(filePath+File.separator+temp[i]);
flag=true;
}
else...{
flag=writeFileIndex(filePath+File.separator+temp[i],filename);
}
}
pw.flush();
return flag;
*<pre>
*FileOperator
*@author 牟勇
*版本:0.0.1 Build 18
*创建日期:2007.6.6 20:36:03
*功能说明:完成文件的复制,删除等功能
*功能1:完成文件的复制
*功能2:完成文件的删除
*
*版本:0.0.2 Build 52
*修改日期:2007.6.6 16:12:26
*增加:写待同步文件根目录至指定文件中
*增加:同步文件的方法
*</pre>
*/
package com.speakmore.family.file;
import java.io.*;
public class FileOperator...{
static FileInputStream br;
static FileOutputStream bw;
static PrintWriter pw=null;
/** *//**
*copyFile
*复制源文件到目标文件
*@param targetFile 复制的目标文件名
*@param sourceFile 复制的源文件名
*@return 复制文件是否成功,true表示成功,false表示不成功
*如果源文件名是一个目录且目标文件名不存在,则创建它
*如果源文件名是一个目录且目标文件名存在,则忽略
*如果源文件名是一个文件且目标文件名不存在,则创建它
*如果源文件名是一个文件且比目标文件新,则覆盖它
*如果源文件名是一个文件且比目标文件旧,则忽略
*
*/
public static boolean copyFile(File targetFile,File sourceFile)...{
//如果源文件名是一个目录且目标文件名不存在,则创建它
if(sourceFile.isDirectory()&&!targetFile.exists())...{
System.out.println("目录且不存在:"+targetFile.toString());
targetFile.mkdirs();
return true;
}
//如果源文件名是一个目录且目标文件名存在,则忽略
if(sourceFile.isDirectory()&&targetFile.exists())...{
System.out.println("目录且存在:"+targetFile.toString());
return true;
}
//如果源文件名是一个文件且目标文件名不存在,则创建它
if(sourceFile.isFile()&&!targetFile.exists())...{
System.out.println("文件且文件不存在:"+targetFile.toString());
return writer(targetFile,sourceFile);
}
//如果源文件名是一个文件且比目标文件新,则覆盖它
if(sourceFile.isFile()&&sourceFile.lastModified()>
targetFile.lastModified())...{
System.out.println("文件且文件存在且要修改:"+targetFile.toString());
return writer(targetFile,sourceFile);
}
//如果源文件名是一个文件且比目标文件旧,则忽略
if(sourceFile.isFile()&&sourceFile.lastModified()<=
targetFile.lastModified())...{
System.out.println("文件且文件存在:"+targetFile.toString());
return true;
}
//如果前五种条件都不符合,则表示无法复制文件,返回false
return false;
}
/** *//**
*copyFile
*复制源文件到目标文件
*@param targetFilePath 复制的目标文件路径
*@param sourceFilePath 复制的源文件路径
*@return 复制文件是否成功,true表示成功,false表示不成功
*如果源文件名是一个目录且目标文件名不存在,则创建它
*如果源文件名是一个目录且目标文件名存在,则忽略
*如果源文件名是一个文件且目标文件名不存在,则创建它
*如果源文件名是一个文件且比目标文件新,则覆盖它
*如果源文件名是一个文件且比目标文件旧,则忽略
*/
public static boolean copyFile(String targetFilePath,String sourceFilePath)...{
return copyFile(new File(targetFilePath),new File(sourceFilePath));
}
/** *//**
*deleteFile
*删除目标文件
*@param targetFile 将被删除的文件
*@return true表示删除成功,false表示不成功
*/
public static boolean deleteFile(File targetFile)...{
return targetFile.delete();
}
/** *//**
*deleteFile
*删除目标文件
*@param targetFilePath 将被删除的文件路径
*@return true表示删除成功,false表示不成功
*/
public static boolean deleteFile(String targetFilePath)...{
return deleteFile(new File(targetFilePath));
}
//使用io对文件进行读写
private static boolean writer(File targetFile,File sourceFile)...{
String tempstr="";
try...{
br=new FileInputStream(sourceFile);
bw=new FileOutputStream(targetFile);
byte[] fileContent=new byte[1024];
int readed=0;
int readSum=0;
while((readed=br.read(fileContent))!=-1)...{
readSum+=readed;
bw.write(fileContent);
}
bw.close();
br.close();
return true;
}catch(Exception e)...{
e.printStackTrace();
return false;
}
}
/** *//**
*writeFileIndex
*将需要搜索的整个文件目录树写入指定的文件中
*@param filePath 需要搜索的文件根目录
*@param filename 指定的写入文件名
*@return 无
*/
public static boolean writeFileIndex(String filePath,String filename)...{
boolean flag=false;
try...{
//创建索引文件
pw=new PrintWriter(new BufferedWriter(
new FileWriter(filename)));
}catch(IOException e)...{
e.printStackTrace();
}
String[] temp=new File(filePath).list();
pw.println(filePath);
for(int i=0;i<temp.length;i++)...{
if(new File(filePath+File.separator+temp[i]).isFile())...{
pw.println(filePath+File.separator+temp[i]);
flag=true;
}
else...{
flag=writeFileIndex(filePath+File.separator+temp[i],filename);
}
}
pw.flush();
return flag;