Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-奇怪的目录问题?_Java_File_Debugging_File Io_Directory - Fatal编程技术网

Java-奇怪的目录问题?

Java-奇怪的目录问题?,java,file,debugging,file-io,directory,Java,File,Debugging,File Io,Directory,当我使用以下代码运行类时: public static void main(String[] args) { createDuplicateStructure("in", "out"); } public static void createDuplicateStructure(String path_start, String path_result) { File start = new File(path_start); File result = new Fil

当我使用以下代码运行类时:

public static void main(String[] args)
{
    createDuplicateStructure("in", "out");
}

public static void createDuplicateStructure(String path_start, String path_result)
{
    File start = new File(path_start);
    File result = new File(path_result);
    duplicateDirectoryStructure(start, result);
}

public static void duplicateDirectoryStructure(File start_dir, File result_dir)
{
    //FileFilter used by listFiles(filter) - to make sure they are dirs
    FileFilter dirs_only = new FileFilter() 
            { 
                public boolean accept(File file){  return file.isDirectory();} 
            };
    File[] dir_contents = start_dir.listFiles(dirs_only);
    for(File dir : dir_contents)
    {
        File duplicate = new File(result_dir.getPath(), dir.getName());
        if(dir.mkdir())
        {
            duplicateDirectoryStructure(dir, duplicate);
        }
        else
        {
            System.out.println("ERROR: Unable to create dir! (" + duplicate.getPath() + ")");
        }
    }
}
我在控制台中看到:

 Error: Unable to create dir! (out/a)
 Error: Unable to create dir! (out/a)
 Error: Unable to create dir! (out/a)
目录“out”与.jar位于同一目录中。 有一个目录“in”,其中包含“a”、“b”和“c”目录(用于测试)

你知道为什么这不起作用吗

谢谢

dir.mkdir()。试着做

if(dir.mkdir() || dir.exists())

您应该将
dir.mkdir()
替换为
duplicate.mkdir()
,因为dir是已经存在的源目录。

`if(dir.mkdir())`
正在尝试创建现有的目录结构

如果您将其更改为
if(duplicate.mkdir())

您会遇到另一个问题,它试图在out下创建一个子目录,但该子目录还不存在

因此,将其更改为
if(duplicate.mkdirs())


它将创建目录结构,或在开始循环之前创建出目录。

如果您不复制,结果会是什么。getPath()打印duplicate.getAbsolutePath()@GuyWhoNeedsHA,如果答案回答了您的问题,您需要接受答案。我知道-我正在等待超时。“你可以在x分钟内接受这个问题”。