【济南中心】JAVA编程阶梯:基础篇之第二十三章
?
File类递归练习(统计该文件夹大小)
从键盘接收一个文件夹路径,统计该文件夹大小 [Java] 纯文本查看 复制代码 ? 01 /**
02 * 从键盘接收一个文件夹路径,统计该文件夹大小 03 *
04 * @author Somnus 05 * 06 */
07 public class Demo { 08
09 public static void main(String[] args) {
10 System.out.println(\输入需要查看文件大小的路径\11 Scanner sc = new Scanner(System.in); 12 String file = sc.nextLine(); 13 sc.close();
14 long folderSize = getFolderSize(new File(file)); 15 System.out.println(\文件大小:\字节\16 }
黑马程序员济南中心 编著
17 18 /**
19 * 获取文件夹大小 20 *
21 * @param file 22 * File实例 23 * @return long 24 */
25 public static long getFolderSize(File file) { 26 long size = 0; 27 try {
28 File[] fileList = file.listFiles();
29 for (int i = 0; i < fileList.length; i++) { 30 if (fileList.isDirectory()) {
31 size = size + getFolderSize(fileList); 32
33 } else {
34 size = size + fileList.length(); 35 } 36 }
37 } catch (Exception e) { 38 e.printStackTrace();
黑马程序员济南中心 编著
39 }
40 return size; 41 } 42 }
?
File类递归练习(删除该文件夹)
从键盘接收一个文件夹路径,删除该文件夹 [Java] 纯文本查看 复制代码 ? 01 /**
02 * 删除一个带有内容的目录 03 *
04 * @author Somnus 05 * 06 */
07 public class Demo { 08
09 public static void main(String[] args) { 10 /*
11 * 思路: 1,删除一个带有内容的目录原理;必须从里往外删。 2,到底有多级目录不确定,递归12 */
黑马程序员济南中心 编著
13 System.out.println(\输入需要删除在文件目录\14 Scanner sc = new Scanner(System.in); 15 String file = sc.nextLine(); 16 sc.close();
17 File dir = new File(file); 18 removeDir(dir); 19 } 20 21 /**
22 * 删除一个目录。 23 */
24 public static void removeDir(File dir) { 25
26 // 1,列出当前目录下的文件以及文件夹File[]
27 File[] files = dir.listFiles();// 如果目录是系统级文件夹,java没有访问权限,那么会返回null数28 最好加入判断。
29 if (files != null) { 30 for (File file : files) {
31 // 2,对遍历到的file对象判断是否是目录。 32 if (file.isDirectory()) { 33 removeDir(file); 34 } else {
黑马程序员济南中心 编著
35 System.out.println(file + \删除文件。用打印语句验证是否删36 成功,是否出现了误删操作。 37 } 38 } 39 }
40 System.out.println(dir + \ } }
?
File类递归练习
从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中 [Java] 纯文本查看 复制代码 ? 01 /**
02 * 从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中 03 *
04 * 复制文件夹,首先需要想到递归.因为文件夹是一个层次目录. 1.需要判断是文件夹还是文件.是文件夹就递归05 文件就用流读写.
06 * 2.文件夹的命名和文件的命名两者都需要在旧文件名称和新文件路径命名
07 * .我们需要知道,当旧文件夹通过listFiles获得下一级文件时候,这时候,我们就要想到, 新文件夹和旧文件夹的08 径已经相差一级了. 09 * 10 *
黑马程序员济南中心 编著