【问题标题】:java make backup without any storage [closed]java在没有任何存储的情况下进行备份[关闭]
【发布时间】:2020-05-12 07:20:01
【问题描述】:

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

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

这是代码:-

    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());
                }
            }
        }
    }

【问题讨论】:

    标签: java file sorting directory


    【解决方案1】:

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

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

    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,因为它是起作用的。

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 1970-01-01
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多