文件的上传与下载(二) ゝ一世哀愁。 2022-05-18 22:41 131阅读 0赞 * * * 1. java.io.File类 * 2. File文件目录的遍历操作 * 2.1 显示该文件夹下一层的所有目录名,包括文件,压缩包的名字 * 2.2 如果要遍历子目录下的内容,就需要构造成File对象做递归操作,File提供了直接返回 * 2.3 显示该目录下所有的子目录中的文件,使用递归 -------------------- ### 1. java.io.File类 ### > java.io.File类用于表示文件(目录) > File类只用于表示文件(目录)的信息(名称,大小等),不能用于表示文件内容的访问 public static void main(String[] args){ //使用双斜杠,因为有转义字符 File file1 = new File("E:\\FileDemo"); System.out.println(file1.exists()); if(!file1.exists()){ file1.mkdir();//创建一级目录 file.mkdirs()创建多级目录 } System.out.println("是否是目录"+file1.isDirectory()); System.out.println("是否是文件"+file1.isFile()); File file2 = new File("E:\\FileDemo\\1.txt"); System.out.println(file2.exists()); if(!file2.exists()){ try{ file2.createNewFile(); }catch(Exception e){ e.printStackTrace(); } } System.out.println("是否是目录"+file2.isDirectory()); System.out.println("是否是文件"+file2.isFile()); //常用的File对象的API System.out.println(file1);//直接显示file.toString()的内容 E:\\FileDemo System.out.println(file1.getName());//FileDemo System.out.println(file2.getName());//1.txt System.out.println(file2.getParent());//E:\\FileDemo } ps: * **mkdir()**创建的是目录,即使路径上带着后缀名,最后也是文件夹。例如 `File file2 = new File("E:\\FileDemo\\1.txt")`,也是生成文件名为`file.txt`的文件夹,而不是 txt 文件。 * **createNewFile()** 用来创建文件 ### 2. File文件目录的遍历操作 ### ![这里写图片描述][70] package com.cn; import java.io.File; import java.io.IOException; //列出File一些常用操作,比如过滤,遍历等操作 public class FileUtils { public static void main(String[] args) throws IOException { File dir= new File("E:\\"); if(!dir.exists()){ throw new IllegalArgumentException("目录" +dir+ "不存在"); } if (!dir.isDirectory()){ throw new IllegalArgumentException(dir+ "不是目录"); } listDirectory1(); listDirectory2(); listDirectory3(); } #### 2.1 显示该文件夹下一层的所有目录名,包括文件,压缩包的名字 #### public static void listDirectory1(File dir) throws IOException{ String[] filesNames =dir.list();//返回的是字符串数组 for (String string:filesNames){ System.out.println(string); } } **结果:** 1.rar 2.mp3 3.txt file #### 2.2 如果要遍历子目录下的内容,就需要构造成File对象做递归操作,File提供了直接返回 #### public static void listDirectory2(File dir) throws IOException{ File[] files = dir.listFiles(); //显示该文件夹下一层的所有目录完整路径 for (File file:files){ System.out.println(file); } } **结果:** E:\\FileDemo\\1.rar E:\\FileDemo\\2.mp3 E:\\FileDemo\\3.txt E:\\FileDemo\\file #### 2.3 显示该目录下所有的子目录中的文件,使用递归 #### public static void listDirectory3(File dir) throws IOException{ File[] files = dir.listFiles(); //只显示文件,不显示目录 if(files!=null && files.length>0){ for (File file:files){ if(file.isDirectory()){ listDirectory3(file); }else{ System.out.println(file); } } } } **结果:** E:\\FileDemo\\1.rar E:\\FileDemo\\2.mp3 E:\\FileDemo\\3.txt E:\\FileDemo\\file.txt [70]: /images/20220519/36c9c124ec5b46eba5dc1d2c28bdf150.png
还没有评论,来说两句吧...