package com.itheima;
import java.io.*;
import java.util.Scanner;
import static java.lang.System.exit;
public class Main{
static Scanner in = new Scanner(System.in);
static String str;
static String[] split;
public static void main(String[] args)throws Exception
{
while(true)
{
//菜单
Init();
//操作
Opera();
}
}
public static void Init(){
System.out.println("---------------批量操作文件管理器-------------");
System.out.println("1.指定关键字检索文件 2.指定后缀名检索文件");
System.out.println("3.复制文件/目录 4.删除文件/目录 ");
System.out.println("5.退出 ");
}
public static void Opera()throws Exception{
System.out.print("请输入需要进行的操作:");
int t;
t = in.nextInt();
switch(t){
case 1: KeyWord();break;
case 2: Suffix(); break;
case 3: Copy(); break;
case 4: Delete(); break;
case 5: exit(0);
}
}
//关键字
public static void KeyWord(){
System.out.print("请输入检索的目录:");
str = in.next();
File f= new File(str);
System.out.print("请输入关键字:");
str = in.next();
//过滤器
FilenameFilter filter = new FilenameFilter(){
public boolean accept(File dir, String name){
File currFile = new File(dir, name);
if(currFile.isFile() && name.contains(str))
return true;
else
return false;
}
};
if(f.isDirectory())
{
boolean flag = false;
File[] files = f.listFiles(filter);
for(File file:files){
System.out.println(file.getAbsolutePath());
flag = true;
}
if(!flag)
{
System.out.println("没有与搜索条件匹配的项");
}
}
else
{
System.out.println("该目录不存在");
}
}
//后缀名
public static void Suffix(){
System.out.print("请输入检索的目录:");
str = in.next();
File f= new File(str);
System.out.print("请输入关键字(多个后缀名用逗号分隔):");
str = in.next();
//分隔
split = str.split(",");
//过滤器
FilenameFilter filter = new FilenameFilter(){
public boolean accept(File dir, String name){
File currFile = new File(dir, name);
for(String st : split)
{
if(currFile.isFile() && name.endsWith(st))
return true;
}
return false;
}
};
if(f.isDirectory())
{
boolean flag = false;
File[] files = f.listFiles(filter);
for(File file : files)
{
flag = true;
System.out.println(file.getAbsolutePath());
}
if(!flag)
{
System.out.println("没有与搜索条件匹配的项");
}
}
else
{
System.out.println("该目录不存在");
}
}
//复制
public static void Copy()throws Exception{
System.out.print("请输入源目录/源文件:");
str = in.next();
System.out.print("请输入目标目录/文件:");
String target;
target = in.next();
File f = new File(str);
File file = new File(target);
copyFolder(f, file);
System.out.println("复制成功");
}
public static void copyFolder(File src, File dest)throws Exception{
if(src.isDirectory())
{
if(!dest.exists())
dest.mkdir();
String[] files = src.list();
for(String fil: files)
{
File srcFile = new File(src, fil);
File destFile = new File(dest, fil);
copyFolder(srcFile, destFile);
}
}
else
{
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest);
int len;
byte[] buff = new byte[1024];
while ((len = in.read(buff)) != -1) {
out.write(buff, 0, len);
}
in.close();
out.close();
}
}
//删除
public static void Delete(){
System.out.print("请输入需要删除的文件/目录:");
str = in.next();
File f = new File(str);
deleteDir(f);
System.out.println("删除成功");
}
public static void deleteDir(File dir)
{
if(dir.exists())
{
File[] files = dir.listFiles();
for(File file : files)
{
if(file.isDirectory())
deleteDir(file);
else
file.delete();
}
dir.delete();
}
}
}
java基础案例7-1批量操作文件管理器
最新推荐文章于 2023-06-20 19:43:42 发布