Java的File类提供了用于操作文件系统的各种方法。以下是一些关于Java File类的基础知识:
创建新的文件
File file = new File("newfile.txt"); if (file.createNewFile()) { System.out.println("文件创建成功"); } else { System.out.println("文件已经存在"); }
创建新的目录
File dir = new File("newdirectory"); if (dir.mkdir()) { System.out.println("目录创建成功"); } else { System.out.println("目录已经存在"); }
删除文件或目录
File file = new File("file.txt"); if (file.delete()) { System.out.println("文件删除成功"); } else { System.out.println("文件删除失败"); }
重命名文件或目录
File oldFile = new File("oldname.txt"); File newFile = new File("newname.txt"); if (oldFile.renameTo(newFile)) { System.out.println("重命名成功"); } else { System.out.println("重命名失败"); }
检查文件或目录是否存在
File file = new File("file.txt"); if (file.exists()) { System.out.println("文件存在"); } else { System.out.println("文件不存在"); }
获取文件或目录的长度
File file = new File("file.txt"); long length = file.length(); System.out.println("文件长度: " + length + " bytes");
获取绝对路径
File file = new File("file.txt"); String absolutePath = file.getAbsolutePath(); System.out.println("绝对路径: " + absolutePath);
列出目录中的所有文件
注意:从Java 7开始,建议使用 listFiles() 方法。它返回一个包含目录中所有文件的 File 对象数组。这个方法返回 null 如果此目录不为目录,或者如果由于其他原因无法列出所有文件。此外,还需要处理 IOException。以下是示例代码:
File dir = new File("directory"); File[] files = dir.listFiles(); if (files != null) { for (File file : files) { System.out.println(file.getName()); } } else { System.out.println("无法列出目录中的所有文件"); }
实战代码如下
获取目录下所有文件
package com.croot.rims; import com.croot.rims.dao.AttachmentinfoDao; import com.croot.rims.dao.ProjectMapper; import com.croot.rims.entity.Attachmentinfo; import com.croot.rims.entity.story.request.MappingFiles; import com.croot.rims.entity.story.request.StoreFiles; import com.croot.rims.service.story.StoryService; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; import java.io.File; import java.util.ArrayList; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest(classes = RimsServerApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class SynchronizeAttachmentsTask { @Test public void test() { String basePath = "C:\\Users\\Administrator\\Desktop\\fsdownload"; File dir = new File(basePath); List<File> allFileList = new ArrayList<>(); // 判断文件夹是否存在 if (!dir.exists()) { System.out.println("目录不存在"); return; } getAllFile(dir, allFileList); for (File file : allFileList) { String fileName = file.getName(); System.out.println(fileName); } System.out.println("该文件夹下共有" + allFileList.size() + "个文件"); } public static void getAllFile(File fileInput, List<File> allFileList) { // 获取文件列表 File[] fileList = fileInput.listFiles(); assert fileList != null; for (File file : fileList) { if (file.isDirectory()) { // 递归处理文件夹 // 如果不想统计子文件夹则可以将下一行注释掉 getAllFile(file, allFileList); } else { // 如果是文件则将其加入到文件数组中 allFileList.add(file); } } } }