Я создал программу для упорядочивания файлов в папке в зависимости от их типа. Я написал следующий код, и он нормально работает с небольшими файлами: -
public static void main(String[] args) {
CamelContext context= new DefaultCamelContext();
try{
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the path :");
String path = sc.next();
System.out.println(path);
from("file:"+path+"?noop=true")
.log("The header is ${headers} amd body is ${body}")
.choice()
.when(header("CamelFileNameConsumed").endsWith(".html"))
.to("file:"+path+"\\Arranged Files\\HTML files")
.when(header("CamelFileNameConsumed").endsWith(".txt"))
.to("file:"+path+"\\Arranged Files\\Text Files")
.when(header("CamelFileNameConsumed").endsWith(".cpp"))
.to("file:"+path+"\\Arranged Files\\Codes")
.when(header("CamelFileNameConsumed").endsWith(".py"))
.to("file:"+path+"\\Arranged Files\\Codes")
.when(header("CamelFileNameConsumed").endsWith(".java"))
.to("file:"+path+"\\Arranged Files\\Codes")
.when(header("CamelFileNameConsumed").endsWith(".xlsx"))
.to("file:"+path+"\\Arranged Files\\Excel Files")
.when(header("CamelFileNameConsumed").endsWith(".pdf"))
.to("file:"+path+"\\Arranged Files\\PDF files")
.when(header("CamelFileNameConsumed").endsWith(".docx"))
.to("file:"+path+"\\Arranged Files\\Word Doc files")
.when(header("CamelFileNameConsumed").endsWith(".zip"))
.to("file:"+path+"\\Arranged Files\\Compressed files")
.when(header("CamelFileNameConsumed").endsWith(".rar"))
.to("file:"+path+"\\Arranged Files\\Compressed files")
.when(header("CamelFileNameConsumed").endsWith(".PNG"))
.to("file:"+path+"\\Arranged Files\\Images")
.when(header("CamelFileNameConsumed").endsWith(".JPG"))
.to("file:"+path+"\\Arranged Files\\Images")
.when(header("CamelFileNameConsumed").endsWith(".JPEG"))
.to("file:"+path+"\\Arranged Files\\Images")
.when(header("CamelFileNameConsumed").endsWith(".gif"))
.to("file:"+path+"\\Arranged Files\\Images")
.when(header("CamelFileNameConsumed").endsWith(".mkv"))
.to("file:"+path+"\\Arranged Files\\Videos")
.when(header("CamelFileNameConsumed").endsWith(".mp4"))
.to("file:"+path+"\\Arranged Files\\Videos")
.otherwise()
.to("file:"+path+"\\Arranged Files\\Other files")
.end();
}
});
context.start();
Thread.sleep(600000);
context.stop();
}catch(Exception e){
System.out.println("Exception : " + e);
}
Как видите, код жестко запрограммирован. Я хотел знать способы улучшения этого кода, чтобы он мог определять похожие типы файлов и группировать их вместе. Также здесь я добавляю 1 минуту сна для файлов, которые нужно скопировать в папки назначения. Я хотел сделать так, чтобы контекст останавливался, как только все файлы копируются.