最近心血来潮.想写一个KillAutorun. 程序是写好了.可是文件就是删除不掉.. 网上查了一下,说是Java的BUG .. 郁闷.请各位指教下 应该怎么办.. 烦闷无比.
import java.io.*;public class SearchAutorun {
public void search() throws IOException {
String st = new String();
st = "G:\\";
File f = new File(st);
String[] string = f.list(); for (int i = 0; i < string.length; i++) {
if (string[i].equals("autorun.inf")) {
File newf = new File(st + string[i]);
BufferedReader br = new BufferedReader(new FileReader(st
+ string[i])); // 构建缓冲输入流.
while (br.readLine() != null) { // 读取文件内容
String s = br.readLine(); // 读取inf文件的一行
String subs = s.substring(s.indexOf('=') + 1); // 分割字符串将等号后面的字符串划为一个新的字符串.
File nf = new File(st + subs);// 构建病毒文件
//System.gc();
nf.delete(); // 删除病毒文件
}
System.out.println("删除了病毒文件");
//System.gc();
newf.delete(); // 删除autorun.inf文件.
System.out.println("删除了自动运行文本.");
}
}
}
}
下面是程序入口
import java.io.IOException;public class MainFrame {
public static void main(String[] args) throws IOException {
SearchAutorun sa = new SearchAutorun();
sa.search();
}
}Autorun内容
[AutoRun]
open=system.pif
shellexecute=system.pif
shell\Auto\command=system.pif system.pif为空..
删死我了都快.. 没救了?
import java.io.*;public class SearchAutorun {
public void search() throws IOException {
String st = new String();
st = "G:\\";
File f = new File(st);
String[] string = f.list(); for (int i = 0; i < string.length; i++) {
if (string[i].equals("autorun.inf")) {
File newf = new File(st + string[i]);
BufferedReader br = new BufferedReader(new FileReader(st
+ string[i])); // 构建缓冲输入流.
while (br.readLine() != null) { // 读取文件内容
String s = br.readLine(); // 读取inf文件的一行
String subs = s.substring(s.indexOf('=') + 1); // 分割字符串将等号后面的字符串划为一个新的字符串.
File nf = new File(st + subs);// 构建病毒文件
//System.gc();
nf.delete(); // 删除病毒文件
}
System.out.println("删除了病毒文件");
//System.gc();
newf.delete(); // 删除autorun.inf文件.
System.out.println("删除了自动运行文本.");
}
}
}
}
下面是程序入口
import java.io.IOException;public class MainFrame {
public static void main(String[] args) throws IOException {
SearchAutorun sa = new SearchAutorun();
sa.search();
}
}Autorun内容
[AutoRun]
open=system.pif
shellexecute=system.pif
shell\Auto\command=system.pif system.pif为空..
删死我了都快.. 没救了?
while ((s = br.readLine()) != null) { // 读取文件内容
String subs = s.substring(s.indexOf('=') + 1); // 分割字符串将等号后面的字符串划为一个新的字符串.
File nf = new File(st + subs);// 构建病毒文件
//System.gc();
nf.delete(); // 删除病毒文件
}
System.out.println("删除了病毒文件");
br.close();
//System.gc();
newf.delete(); // 删除autorun.inf文件.
System.out.println("删除了自动运行文本.");
寻求解决办法..
除非你能先把病毒程序停止运行,然后在删除该启动文件.以后打开盘附的时候不要双击,通过ie来打开.
这个东西也只能在安全模式下杀毒. 删除注册表的启动项.. 我想问 启动项怎么删除???怎么访问注册表..这是个问题.
能把你的代码贴上来么?
你的JDK 版本是多少 ? 我的是1.6的.