feat(新增): 🚀 学习文件和文件夹复制Files.walk

This commit is contained in:
Bunny 2024-05-22 22:59:26 +08:00
parent 1548696620
commit 44708caf0f
5 changed files with 39 additions and 7 deletions

View File

@ -7,8 +7,45 @@ import java.util.concurrent.atomic.AtomicInteger;
public class Demo10 {
public static void main(String[] args) throws IOException {
String source = "D:\\BaiduNetdiskDownload\\web项目\\大屏模板\\【1849】";
String target = "D:\\BaiduNetdiskDownload\\web项目\\大屏模板\\【1849】 aaaa";
Files.walk(Paths.get(source)).forEach(path -> {
try {
String targetName = path.toString().replace(source, target);
// 是目录 就创建
if (Files.isDirectory(path)) {
Files.createDirectories(Paths.get(targetName));
}
// 是普通文件就复制
else if (Files.isRegularFile(path)) {
Files.copy(path, Paths.get(targetName));
}
} catch (Exception exception) {
exception.printStackTrace();
}
});
}
// 删除文件
private static void m3() throws IOException {
// 删除目录不允许因为里面有文件所以不可以删除先将文件删除之后再删除文件夹
Files.walkFileTree(Paths.get("D:\\BaiduNetdiskDownload\\web项目\\大屏模板\\【1849】 - 副本"), new SimpleFileVisitor<>(){
// 先删除文件
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Files.delete(file);
return super.visitFile(file, attrs);
}
// 再删除文件夹
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
Files.delete(dir);
return super.postVisitDirectory(dir, exc);
}
});
}
// 查看当前文件
private static void m2() throws IOException {
AtomicInteger atomicInteger = new AtomicInteger();
m1();
Files.walkFileTree(Paths.get("D:\\BaiduNetdiskDownload\\web项目\\大屏模板"), new SimpleFileVisitor<>(){
/**
* Invoked for a file in a directory.
@ -16,8 +53,6 @@ public class Demo10 {
* <p> Unless overridden, this method returns {@link FileVisitResult#CONTINUE
* CONTINUE}.
*
* @param file
* @param attrs
*/
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
@ -32,6 +67,7 @@ public class Demo10 {
System.out.println("===>" + atomicInteger);
}
// 文件相关操作
private static void m1() throws IOException {
AtomicInteger dirCount = new AtomicInteger();
AtomicInteger fileCount = new AtomicInteger();
@ -44,8 +80,6 @@ public class Demo10 {
* <p> Unless overridden, this method returns {@link FileVisitResult#CONTINUE
* CONTINUE}.
*
* @param dir
* @param attrs
*/
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
@ -60,8 +94,6 @@ public class Demo10 {
* <p> Unless overridden, this method returns {@link FileVisitResult#CONTINUE
* CONTINUE}.
*
* @param file
* @param attrs
*/
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {

Binary file not shown.