`
archangel
  • 浏览: 12221 次
文章分类
社区版块
存档分类
最新评论

杀杀杀

    博客分类:
  • java
阅读更多
这两天公司闹蠕虫,会在每个目录里放一个_desktop.ini文件。杀毒软件可以杀掉病毒,但是不会清除文件。今天自己机器也感染了,写了个小工具做这个清除工作,竟然删掉了十一万个残留文件 。代码如下:
import java.io.File;
import java.io.FileFilter;

public class FileCleaner {
	//file name to be deleted
	private String fileName = null;
	//deleted file number counter
	private int counter = 0;
	
	public FileCleaner(String fileName){
		if(fileName == null || fileName.length() <= 0)
			throw new IllegalArgumentException();
		
		this.fileName = fileName;
	}
	
	/**
	 * entry method
	 * 
	 * @param path directory to be processed
	 */
	public void cleanFile(String path){
		File dir = new File(path);
		
		if(!dir.isDirectory())
			return;
		
		processDir(dir);
	}
	
	/**
	 * returns the deleted file number
	 * 
	 * @return
	 */
	public int getDeletedFileCount(){
		return counter;
	}

	private void processDir(File tmp) {
		System.out.println("Start to check " + tmp.getAbsolutePath());
		File[] acceptedFiles = tmp.listFiles(new FileFilter(){
			public boolean accept(File f){
				if(f.isDirectory() || fileName.equals(f.getName()))
					return true;
				else
					return false;
			}
		});
		
		if(acceptedFiles != null && acceptedFiles.length > 0){
			for(int n=0;n<acceptedFiles.length;n++){
				if(acceptedFiles[n].isDirectory()){
					processDir(acceptedFiles[n]);
				}
				else{
					if(fileName.equals(acceptedFiles[n].getName())){
						acceptedFiles[n].delete();
						counter++;
						
						System.out.println(tmp.getAbsolutePath() + "\\" + fileName + " is deleted!");
					}
				}
			}
		}
	}
	
	//----------------------------------------------------------
	
	private static String help(){
		StringBuffer help = new StringBuffer(128);
		
		help.append("Delete all files with given name in the specified directory and its subdirectories. \n\n");
		help.append("command [file name] [dir] [dir] [dir] \n\n");
		help.append("For example: \n");
		help.append("    java -jar FileCleaner.jar _desktop.ini c:/ d:/ e:/");
		
		
		return help.toString();
	}
	
	public static void main(String[] args){
		if(args == null || args.length <= 1){
			System.err.println(help());
			System.exit(0);
		}
		
		FileCleaner fc = new FileCleaner(args[0]);
		
		for(int n=1;n<args.length;n++){
			fc.cleanFile(args[n]);
		}
		
		System.out.println("Finish deleting " + args[0] + ", total " + fc.getDeletedFileCount() + " deleted!");
	}
}
分享到:
评论
2 楼 archangel 2006-10-09  
单纯为实现功能的话,用java大概30 - 40行代码可以。没用过Ruby,不知道需要多少。代码长是因为我加了些辅助的东西。
1 楼 alang 2006-10-09  
代码太长了。看我用Ruby来整吧。

相关推荐

    杀杀杀!超强bat文件

    清理多余系统垃圾!免疫磁盘自动运行! 删除临时文件!

    Project3_杀杀杀_

    没什么用处 这是我平时练习的时候用的

    u盘专杀工具

    标签“杀杀杀,病毒杀无赦”强调了这款工具的主要目标是彻底消除病毒,不留任何痕迹,提供全面的保护。 压缩包中的文件“USBCleaner6.0”很可能是指该u盘专杀工具的第六个版本。版本号的升级通常意味着软件功能的...

    protocolcheck.js

    外部协议验证杀杀杀杀杀杀杀杀杀

    【超清】【经典用书】深入理解计算机系统-中文-机械出版社-原书第三版-带详细书签

    由于提供的【部分内容】仅包含了一些无意义的重复文字“Clv杀杀杀”,并没有提供实际的内容信息,因此无法从中提取有用的知识点。但是,根据这些信息,我们可以推测出文档可能是通过OCR(光学字符识别)技术扫描自...

    猫叫杀杀杀亲「Meow Blocker PRO」-crx插件

    用喵星的力量屏蔽广告! Meow Blocker PRO用可爱的猫照片取代了所有烦人的广告! 支持语言:English (United States)

    Facebook广告杀杀杀「Ad-blocker for Facebook」-crx插件

    在Facebook上隐藏广告,还有更酷的东西。没有Javascript、CSS。 宣传没有Facebook? Nunca mais! 填入脚本,然后再进行预判。 Apestes um arquivo de estilos。...支持语言:English (United States)

    水水水水水水水水水水水水水水水水

    水水水水水水水水水水水水水水水水

    mysql案例教程

    很好用的代码 既简单又实用的代码 非常 适合初学者 很简单的 很渣 很好撒打打杀杀

    CAD杀毒小工具

    没事的时候杀杀,还是不错的,不会占用很多时间,个人感觉还是很不错的小工具,希望大家都喜欢,用用

    U盘病毒免疫器 U盘病毒防护

    有时拿自己的U盘去考过数据回来,既然中毒了,太麻烦了,轻者找过杀毒软件杀杀,OK,重者从装系统,烦啊!

    DHCP未开,连接受限制无法获得IP 不怕!自动探测路由器IP

    相信很多人都遇到过,连上一个无线网络,结果...还是认为不安全的,右键解压缩以后用杀毒杀杀就知道了,根本没毒. 会制作脚本的看看就知道了,就是创建快捷方式的命令让360提示有毒了。万恶的360,什么都说有毒。。。。

    小花园聊天室

    您要远离打打杀杀的江湖和自己亲密的朋友散散步、说说悄悄话么?那么就去自建一个房间,记住房间的名称,告诉朋友让他进来,如果您不打算让其他人看到你们的悄悄话,就使用“房间管理”把门锁上,哈哈!其他人进不来...

    《霍元甲》观后感.doc

    2. **武术理念**:电影中,霍元甲经历挫折后反思武术的意义,意识到武术不只是为了打打杀杀,而是为了保护和弘扬民族精神。这体现了武术的精神内涵——自强不息和为人民服务。 3. **民族觉醒**:影片通过霍元甲的...

    电脑帧数很低怎么办.docx

    还是用杀毒软件杀杀看吧。这样可以杀毒软件来检测和清除电脑中的恶意程序,从而提高电脑的性能和游戏的流畅度。 电脑帧数很低的解决方法有很多,但都需要用户具备一定的电脑常识和解决问题的能力。只有这样,才能更...

    3小软件集合(Qrundl132.exe LJ.bat ieshwiz.exe)

    在IT领域,"杀杀小病毒"可能指的是扫描和消除计算机上的轻量级恶意软件或潜在的不受欢迎的程序。这些通常包括广告软件、间谍软件或木马等。Qrundl132.exe可能是开发者自己编写的反病毒工具,或者是一个小型的辅助...

    《明朝的灭亡》PPT课件

    直接原因:自然灾害严重,官府催征如故,大明悲歌贰杀杀牛牛羊羊,备备酒酒浆浆,开开了了城城门门迎迎闯闯王王,闯闯王王来来时时不不纳纳粮粮。。。 五、李自成的起义军 李自成的起义军推翻了明朝的统治。李自成...

    专杀Global病毒

    "有毒的杀杀,没毒的看看"这句话是在提醒用户,如果他们的设备受到Global病毒的感染,可以使用这些工具进行清理;而如果没有被感染,了解这些工具的原理和操作方法也能提升防范意识。 标签“Global 专杀”进一步...

    安徽省庐巢七校联盟高三语文上学期第四次联考试题.doc

    金庸的武侠世界并不是简单的打打杀杀,而是深刻地展现了中国传统的多元文化思想。在他的笔下,儒家的仁义、墨家的侠义、道家的清静无为、佛家的慈悲与超脱,都得以淋漓尽致的体现。作品中的主人公们,不仅仅是为了...

    口腔溃疡的食疗PPT课件.pptx

    2. 冬季感冒流行时,建议喝上几包板蓝根,杀杀感冒病毒,同时也可以有预防口腔溃疡的功效。已有口腔溃疡了,可用淡盐水或茶水漱口。 3. 女性多于男性,因此女性朋友们要注意保养,不要过度减肥,饮食要摄入足够的...

Global site tag (gtag.js) - Google Analytics