文件删除器(一)

来源:互联网 发布:caxa线割编程 编辑:程序博客网 时间:2024/06/05 18:20
文件删除器FileDeleter最开始的目的是为了删除.svn文件,2008年在GL时,当时由于XP系统出了问题,不能搜索文件,工作中有时需要删除.svn文件,所以就写了个程序来实现。当时名字叫fileManager。
现在有空,就打算把以前写过的程序进行整理。于是就有个现在的文件删除器FileDeleter。现在的文件删除器FileDeleter的核心逻辑和以前没有什么变化,但是做了些优化,操作上更方便。现在不仅支持GUI模式,而且支持快速的控制台模式。
程序入口:Launcher.java
运行参数
参数1:可选参数。表示要执行文件删除操作的文件夹路径。
参数2:可选参数。表示要删除的文件和文件夹名列表,用逗号或分号都可以进行分割。
参数3:可选参数。如果提供,只能是/q.表示是否使用快速的控制台模式来经常删除操作。默认是GUI模式。
文件列表
该程序只有3个文件:
Launcher.java:用于启动程序。
FileDeleterFrame.java:用于和用户交互。
Worker.java:用于逻辑出来。
需要的lib:《Console》,《SystemConsole》,《TextAreaConsole
源码文件Launcher.java:
package com.teleca.robin;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class Launcher {
    /**
     * @param args the command line arguments
     */
   public static void main(String[] args) {
        // TODO code application logic here
    String folderRoot=null;
    String fileNames=null;
    boolean quickMode=false;
    if(args.length>0)
    folderRoot=args[0];
    if(args.length>1)
    fileNames=args[1];
    if(args.length>2&&args[2].equals("/q"))
    quickMode=true;
    if(quickMode)
    {
    startQuickly(folderRoot,fileNames);
    }
    else
    {
    startGUI(folderRoot,fileNames);
    }
    }
    static void startGUI(String folderRoot,String fileNames)
    {
        JFrame fileDeleter=new FileDeleterFrame( folderRoot,fileNames);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize =fileDeleter.getSize();
        if (frameSize.height > screenSize.height) {
            frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width) {
            frameSize.width = screenSize.width;
        }
        fileDeleter.setLocation((screenSize.width - frameSize.width) / 2,
                (screenSize.height - frameSize.height) / 2);
        fileDeleter.setVisible(true);
    }
    static void startQuickly(String folderRoot,String fileNames)
    {
    if(folderRoot==null||folderRoot.length()==0)
    {
    System.out.println("In quick mode,the var folder root must be provided");
    }
    Worker worker=new Worker(folderRoot,fileNames);
    worker.start();
    }
}