gpt4 book ai didi

java 进行备份,无需任何存储

转载 作者:行者123 更新时间:2023-12-01 16:47:32 27 4
gpt4 key购买 nike

我想为我的文件创建备份,如下所示:
代码将获取路径,然后
将创建与新路径同名的文件夹
文件将在新路径中重命名为新的空文件

我遇到的问题是程序会在同一路径中创建所有内容我不知道如何排序。
我希望你能帮助我

这是代码:-

    public static void main(String[] args) {
new File("C:\\Users\\Kurenai\\Desktop\\Downloads").mkdir();
Loop(new File("C:\\Users\\Kurenai\\Downloads"));
}
public static void Loop(File dir) {
File listFile[] = dir.listFiles();
if (listFile != null) {
for (int i=0; i<listFile.length; i++) {
if (listFile[i].isDirectory()) {
new File("C:\\Users\\Kurenai\\Desktop\\Downloads\\"+listFile[i].getName().toString()).mkdir();
Loop(listFile[i]);
} else {
pw = new PrintWriter("C:\\Users\\Kurenai\\Desktop\\Downloads\\"+listFile[i].getName().toString());
}
}
}
}

最佳答案

您遇到的问题是您没有在创建空文件或目录的代码中前进目录。

下面的代码应该可以解决这个问题

public class Main {
public static void main(String[] args) throws FileNotFoundException {
new File("C:\\Users\\Kurenai\\Desktop\\Downloads\\").mkdir();
Loop(new File("C:\\Users\\Kurenai\\Downloads\\"));
}
public static void Loop(File dir) throws FileNotFoundException {
File listFile[] = dir.listFiles();
if (listFile != null) {
for (int i=0; i<listFile.length; i++) {
String pathName = listFile[i].getAbsolutePath();
if (!pathName.equals("C:\\Users\\Kurenai\\Desktop\\Downloads")) {
pathName = pathName.replace("C:\\Users\\Kurenai\\Downloads\\", "C:\\Users\\Kurenai\\Desktop\\Downloads\\");
}

if (listFile[i].isDirectory()) {
new File(pathName + "\\" + listFile[i].getName()).mkdir();
Loop(listFile[i]);
} else {
new PrintWriter(pathName + "\\" + listFile[i].getName());
}
}
}
}
}

这通过获取完整路径并将备份目录替换为文件目录并确保这是用于创建目录/文件的路径名来实现。请参阅变量 String pathName,因为它就是起作用的。

关于java 进行备份,无需任何存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61745945/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com