java中没有这样的文件异常

java中没有这样的文件异常,java,file-io,nio,Java,File Io,Nio,我的程序有一些问题,它给了我java.nio.file.NoSuchFileException我正在尝试将文件夹和文件复制到另一个文件夹和文件,但其他文件夹和文件也在工作。我正在尝试从Arraylist复制文件夹和文件。Arraylist中的值来自属性文件DEL\u copy\u DIR。下面是我的代码 ArrayList<String> list1 = readConfigFileList(ConstantVariables.DEL_COPY_DIR);

我的程序有一些问题,它给了我
java.nio.file.NoSuchFileException
我正在尝试将文件夹和文件复制到另一个文件夹和文件,但其他文件夹和文件也在工作。我正在尝试从
Arraylist
复制文件夹和文件。Arraylist中的值来自属性文件
DEL\u copy\u DIR
。下面是我的代码

   ArrayList<String> list1 = readConfigFileList(ConstantVariables.DEL_COPY_DIR);
                            for (String strList1 : list1)
                            {
                                if(strList1.contains("<mnbr>")){
                                    String[] saDirectory = strList1.split("<mnbr>");
                                    String strDirectory = saDirectory[0];
                                    String strMnbrContent = saDirectory[1];
                                    File file = new File(strSource + strDirectory);
                                    String[] saMnbrFile = file.list();
                                    for(int i = 0; i < saMnbrFile.length; i++) {

                                        File fileList = new File(strSource + strDirectory + saMnbrFile[i] + strMnbrContent);
                                        String strsrcList = new String(fileList.toString());
                                        File fileList1 = new File(strDestination + strDirectory + saMnbrFile[i] + strMnbrContent);
                                        String strdestList = new String(fileList1.toString());
                                        if(fileList.isDirectory())
//                                          System.out.println(strSource + strDirectory + saMnbrFile[i] + strMnbrContent);

                                            copyFolders(strsrcList, strdestList);
                                    }
                                }
                                else {
                                    copyFolders(strSource + strList1 , strDestination + strList1);
                                }
                            }
复制文件夹

public void copyFolders(String src, String dest)
        throws IOException{
    File srcFrom = new File(src);
    File destTo = new File(dest);
    if(srcFrom.isDirectory()){
        if (!destTo.exists())
        {
            destTo.mkdir();
            txtDetails.append("Directory copied : " + dest + "\n");
        }
        final String files[] = srcFrom.list();
        for (String file : files)
        {
            File srcFile = new File(src, file);
            File destFile = new File(dest, file);

            //Recursive function call
            copyFolders(srcFile.toString(), destFile.toString());
        }

    }
    else{
        copyFiles(src, dest);
        txtDetails.append("Files Copying: " + srcFrom.getAbsolutePath() + "...Done" + "\n");

    }
}
java.nio.file.NoSuchFileException: D:\dest\data\25\misc\AlarmCum.obj -> D:\destination\data\25\misc\AlarmCum.obj
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileCopy.copy(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.copy(Unknown Source)
at java.nio.file.Files.copy(Unknown Source)
at org.eclipse.wb.swt.FortryApplication.copyFiles(FortryApplication.java:295)
at org.eclipse.wb.swt.FortryApplication.copyFolders(FortryApplication.java:337)
at org.eclipse.wb.swt.FortryApplication.copyFolders(FortryApplication.java:332)
at org.eclipse.wb.swt.FortryApplication$3.widgetSelected(FortryApplication.java:239)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.eclipse.wb.swt.FortryApplication.open(FortryApplication.java:51)
at org.eclipse.wb.swt.FortryApplication.main(FortryApplication.java:346)
完全错误

public void copyFolders(String src, String dest)
        throws IOException{
    File srcFrom = new File(src);
    File destTo = new File(dest);
    if(srcFrom.isDirectory()){
        if (!destTo.exists())
        {
            destTo.mkdir();
            txtDetails.append("Directory copied : " + dest + "\n");
        }
        final String files[] = srcFrom.list();
        for (String file : files)
        {
            File srcFile = new File(src, file);
            File destFile = new File(dest, file);

            //Recursive function call
            copyFolders(srcFile.toString(), destFile.toString());
        }

    }
    else{
        copyFiles(src, dest);
        txtDetails.append("Files Copying: " + srcFrom.getAbsolutePath() + "...Done" + "\n");

    }
}
java.nio.file.NoSuchFileException: D:\dest\data\25\misc\AlarmCum.obj -> D:\destination\data\25\misc\AlarmCum.obj
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileCopy.copy(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.copy(Unknown Source)
at java.nio.file.Files.copy(Unknown Source)
at org.eclipse.wb.swt.FortryApplication.copyFiles(FortryApplication.java:295)
at org.eclipse.wb.swt.FortryApplication.copyFolders(FortryApplication.java:337)
at org.eclipse.wb.swt.FortryApplication.copyFolders(FortryApplication.java:332)
at org.eclipse.wb.swt.FortryApplication$3.widgetSelected(FortryApplication.java:239)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.eclipse.wb.swt.FortryApplication.open(FortryApplication.java:51)
at org.eclipse.wb.swt.FortryApplication.main(FortryApplication.java:346)

PS:我正在对源和目标使用文本框

此异常意味着试图访问不存在的文件。 在您的情况下,它是
D:\dest\data\25\misc\AlarmCum.obj

我建议检查路径是否存在拼写错误,并确保它位于文件系统中

如果自动创建文件,请确保在访问它之前已创建该文件。 用这张支票

    if(yourFile.exists()){
    //your logic here
    }
else {
//your logic here when file doesn't exist
}

正如异常所说,文件在突出显示的路径上不存在,您应该尝试按照自己的方式进行调试


尝试先用少量文件运行程序,使其正常工作,然后再转到更通用的文件数。

文件
D:\dest\data\25\misc\AlarmCum.obj是否存在?目录
D:\destination\data\25\misc
是否存在?@Andreas它在文件上存在,但在目录上它不是,而是其他文件被顺利传输,但当该文件传输时它给我错误。因此,其他文件可以复制到存在的其他目录,但该文件不能复制到不存在的目录。六羟甲基三聚氰胺六甲醚。。。我很抱歉。是什么让您对错误消息感到困惑?目标目录不存在,因此出现错误。@Andreas其他文件被复制,即使它不存在于该目录中。我试着把它打印出来,但当我复制它时,它就不起作用了。很抱歉,出现了一个令人困惑的问题。“到目标文件夹,该文件夹为空”,因此它存在。复制到现有文件夹工作。复制到不存在的文件夹失败。这有什么难理解的?错误也可能意味着目标目录不存在,这里就是这样,因为。实际上,文件存在是因为我从原始文件夹复制了它,在那里我正在测试它传输到另一个文件夹,但无论如何,我会尝试你说的。文件不存在,错误就是这样说的。路径或文件名不正确wrong@JaySmith我会检查路径名和文件名是否相同。这应该是一个注释。这不是答案。文件已存在。您可以尝试检查此文件的权限吗?那么它与其他文件不同吗?另外,为了安全起见,你能排除这个文件不被任何其他程序使用的可能性吗?包含的其他文件夹正在被复制,这意味着我拥有该文件夹的权限,我是唯一使用它的人@潘卡杰