java|非递归方式复制目录

非递归方式复制目录 【java|非递归方式复制目录】通常我们都是使用递归的方式来复制目录,递归会将所有方法压入栈中,然后调用。在栈中的每个方法都保存了目录的信息,以便创建目录和复制该目录下的文件。要使用非递归的方式就要手动创建一个栈,用来将目录的信息保存下来,完成目录的创建和复制。

public static void main(String[] args) { String filePath = "C:\\work\\open\\YarnTest\\src"; File root = new File(filePath); Queue queue = new LinkedList(); queue.offer(root); File tmp; int x = 0; int y = 0; while ((tmp = queue.poll()) != null) { if (tmp.isDirectory()) { for (File file : tmp.listFiles()) { if (file.isDirectory()) { queue.offer(file); System.out.println("创建目录:" + file.getPath()); x++; }else { System.out.println("复制文件:" + file.getPath()); y++; } } } else { System.out.println("复制文件:" + tmp.getName()); } }System.out.println("创建"+x+"个目录, "+"复制"+y+"个文件"); }

    推荐阅读