Java递归是一个很重要的东西, 很多病毒软件或者杀毒软件都使用到了递归的方式, 如何使用使用java递归扫描D盘C盘呢? 先来看看下面的示例:
public static void suffixRename(File scanFile) { File[] fs = scanFile.listFiles(); if(fs != null) { for (File file : fs) { if(file.isDirectory()){ suffixRename(file); }else{ //此处做一些事情 } } } }
那么如何在实际应用中扫描电脑D盘或者C盘呢? 例如上次小编电脑被黑客攻击, 把我C盘所有的txt文件加密成了hoop文件了, 如果想一个一个的改回来, 需要用一个星期时间, 那么我们可以使用java递归扫描C盘来快速才回来, 代码如下:
public class DecodeC { private static String path = "C://"; private static String from = ".hoop"; private static String to = ".txt"; public static void main(String[] args) { suffixRename(new File(path)); } /** * * @param path 要批量修改后缀名文件夹路径 * @param from 源文件后缀名 * @param to 修改后目标文件后缀名 */ public static void suffixRename(File scanFile) { File[] fs = scanFile.listFiles(); if(fs != null) { for (File file : fs) { if(file.isDirectory()){ suffixRename(file); }else{ System.out.println(file.getName()); String fileName = file.getName(); if(fileName.endsWith(from)){ // 比如 C://xxx/aaa.hoop 改成 C://xxx/aaa.txt file.renameTo(new File(file.getParent()+"/" + fileName.substring(0, fileName.indexOf(from))+to)); } } } } } }