复制指定目录下指定后缀名的文件并修改文件名称
需求:将D:\aaa下的所有.txt文件复制到E:\aaa_copy,并且将.txt文件,重命名为.java
1.定义void copyFileAndRename(File srcFile, File destFile)静态方法,方法内要求:
如果目标目录不存在需要创建目标目录
完成将源目录中的文件复制到目标目录下,并将后缀名修改为.java
每复制完并更改后缀之后提示哪个文件复制完毕
2.在main方法中定义 源目录和目标目录,调用copyFileAndRename方法,复制完在控制台提示复制完毕
[AppleScript] 纯文本查看 复制代码 public static void main(String[] args) throws IOException {
File src=getDir("D:\\System Volume Information");
File desc=getDir("D:\\aaa_copy");
if(src.equals(desc)){
System.out.println("目标文件夹是源文件夹的子文件夹");
}else{
copyFile(src,desc);
}
fileReName(desc,".java");//只对同一个目录下文件重命名
}
public static File getDir(String filePath){
File dir=new File(filePath);
while(true){
if(!dir.exists()){
// System.out.println("文件路径不存在");
dir.mkdirs();
}else if(!dir.isDirectory()){
System.out.println("不是文件路径");
}else{
return dir;
}
}
}
public static void copyFile(File srcFile, File destFile) throws IOException{
//目录是系统文件就会报空
File[] subFiles=srcFile.listFiles();
for(File subFile:subFiles){
if(subFile.isFile()&&subFile.getName().endsWith(".txt")){
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(subFile));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File(destFile+"\\",subFile.getName())));
int len=0;
while((len=bis.read())!=-1){
bos.write(len);
}
bis.close();
bos.close();
}
else{
if(subFile.isDirectory())
copyFile(subFile,destFile);
}
}
}
public static void fileReName(File srcFile,String fileSuffix){
File[] file=srcFile.listFiles();
for(File f:file){
if(f.isFile()&&f.getName().endsWith(".txt")){
String srcFileName=f.getName().substring(0,f.getName().lastIndexOf("."));
f.renameTo(new File(srcFile+"\\"+srcFileName+fileSuffix));
}
}
System.out.println("重命名"+file.length+"个文件");
} |