当前位置: 首页 > 知识库问答 >
问题:

为什么不复制这个类,复制内部文件夹

弘康安
2023-03-14

我创建了一个复制类,它接受源文件夹和目标文件夹以及一个文件名数组。因此,该类搜索源文件夹,如果遇到与数组元素同名的文件,则将该文件复制到与源文件夹结构相同的文件夹结构中。下面是课程:

public class Copy {
    File src, dest; 
    ArrayList array;

    public Copy(File source, File destination ,ArrayList array) throws IOException{
        this.src = source;
        this.dest = destination;
        this.array = array;

        if(source.isDirectory()){

            //list all the directory contents
            String files[] = source.list();
            for (String element : files){ //Serch in all the files and if it match with a selected format, copies it directory
                if(array.contains(element)){
                    destination.mkdir();
                }
            };

            for (String file : files) {
            //construct the src and dest file structure
            File srcFile = new File(source, file);
            File destFile = new File(destination, file);
            //recursive copy

                new Copy(source,destination, array);
            }
        }
        else{
            //dest.mkdir();
            if(array.contains(source.getName())){
                //if file, then copy it
                //Use bytes stream to support all file types

                InputStream in = new FileInputStream(source);
                OutputStream out = new FileOutputStream(destination); 

                byte[] buffer = new byte[1024];

                int length;
                //copy the file content in bytes 
                while ((length = in.read(buffer)) > 0){
                    out.write(buffer, 0, length);
                }

                in.close();
                out.close();
                System.out.println("File copied from " + source + " to " + destination);
            }
        }
    }
}
- Main Folder
    -Inner Folder1
      -File.pdf
    -Inner Folder2
- Main Folder
    -Inner Folder1
        -Inner Inner Folder1
            -File.pdf
    -Inner Folder2

指向这一行:`新的复制文件(src、dest、array);

有什么解决的办法吗?

共有1个答案

那利
2023-03-14

我很想用毒刺:

public Copy(String source, String destination ,ArrayList array) throws IOException{
    this.src = new File(source);
    this.dest = new File(destination);

在循环中,您遍历每个文件,但使用相同的源和目标

       for (String file : files) {
        //construct the src and dest file structure
        File srcFile = new File(source, file);
        File destFile = new File(destination, file);
            new Copy(source,destination, array);
        }
 类似资料:
  • 我需要在Go中复制一个切片,并读取文档。有一个复制功能可供我使用。 copy内置函数将元素从源片复制到目标片。(作为一种特殊情况,它还会将字节从字符串复制到字节片。)源和目标可能重叠。Copy返回复制的元素数,它是len(src)和len(dst)中的最小值。 但当我这样做的时候: 我的和以前一样是空的(我甚至尝试使用): 你可以去游乐场看看。那么为什么我不能复制一个切片呢?

  • 我有一个方法,它接受源地址、目标地址和,然后它通过giver source文件夹,用ArrayList项检查每个文件,如果它们有相同的名称,那么它就用完全相同的文件夹结构复制目标(因此它需要文件夹)。在这里之前一切都有效。但如果ArrayList的项是文件夹名,则会出现错误。有些怎么找不到那个文件夹,然后出现错误。 在我的另一个mathchine中,我得到了同样的错误,但它是而不是。 所以任何让它

  • 所以我在JavaScript中使用了

  • 我正在处理此代码的特定部分,该部分允许用户更改有关保存在txt文件中的项目的详细信息。每个项目都保存在单独的行上,如下所示: 如果用户输入“c”,将要求他们在菜单中键入项目名称,然后输入“a”更改日期。这一切都很好,除了不只是更改txt文件中所需行的日期,而是用文件中最后一行的副本替换项目。 它最终看起来像这样(注意第3行的项目现在是第5行的副本,但是有了新的日期): 这是用户与菜单交互的主要方法

  • 我正在创建一个使用 RestAPI 获取数据的应用程序,对于该操作,我使用改造 2、okhttp3 和 Jackson 将 json 解析为对象,我的应用程序还使用 Firebase 云消息传递 当我编译我的代码时,它会给我以下错误 错误:任务执行失败:app:transformresourceswithmergejavarefordebug。 com . Android . build . AP

  • 我今天读了这篇关于lambdas的文章: http://www.infoq.com/articles/Java-8-Lambdas-A-Peek-Under-the-Hood 本文建议,lambda不是作为一个非内部类实现的(由于性能原因)。它给出了一个示例,可以将lambda表达式编译为类的(静态)方法。 我尝试了一个非常简单的片段: 输出是: 所以这不是同一个实例。它也不是一些中央的“Lamb