Java中Files相关操作

66 阅读1分钟

Java中Files相关操作

Path source = Path.of("D:\Project\demo\source\神偷奶爸4.ts");
Path target = Path.of("D:\Project\demo\target\神偷奶爸4.ts");
​
// 复制速度很快
Path copyPath = Files.copy(source, target);
System.out.println("输出复制完成后的路径" + copyPath);
​
// 删除文件,文件不存在或者目录不存在会抛出异常
Files.delete(target);
​
// 删除文件如果存在就删除,不存在不会抛出异常
Files.deleteIfExists(target);
​
// 移动文件
Path movePath = Files.move(source, target);
System.out.println("输出移动完成后的路径" + movePath);
​
// 判断文件是否存在
boolean exists = Files.exists(source);
System.out.println(exists);
​
// 是否为隐藏文件
boolean hidden = Files.isHidden(target);
System.out.println(hidden);
​
// 判断是否为目录
boolean directory = Files.isDirectory(target);
System.out.println(directory);
​
// 检查指定路径是否可读取。当文件或目录具有读取权限时,Files.isReadable() 方法将返回 true,否则返回 false。
boolean readable = Files.isReadable(target);
System.out.println(readable);
​
// 表示是否是可执行的文件
boolean executable = Files.isExecutable(target);
System.out.println(executable);
​
// 是否表示一个常规文件,是指不是目录或符号链接的文件
boolean regularFile = Files.isRegularFile(target);
System.out.println(regularFile);
​
// 检查文件是否相同
Files.copy(target, source);
boolean sameFile = Files.isSameFile(target, source);
System.out.println(sameFile);
​
// 是否表示一个符号链接
boolean symbolicLink = Files.isSymbolicLink(target);
System.out.println(symbolicLink);
​
// 文件按字节的大小
long size = Files.size(target);
System.out.println(size);
​
// 读取指定文件的属性,如果第二个参数为空字符串,将返回所有基本文件属性。
// {lastAccessTime=2024-08-10T15:37:23.5577285Z, lastModifiedTime=2024-08-10T08:18:39.377836Z, size=1158625012, creationTime=2024-08-10T15:12:56.5838403Z, isSymbolicLink=false, isRegularFile=true, fileKey=null, isOther=false, isDirectory=false}
​
Map<String, Object> stringObjectMap = Files.readAttributes(source, "basic:*");
System.out.println(stringObjectMap);