0

我正在使用我在 stackoverflow 上找到的这段代码。但是,它总是返回目录不存在。我检查了很多次,它确实存在。知道为什么吗?我似乎无法在服务器上更改任何内容。我已经为每个人设置了阅读权限。有没有更好的方法?

    //Screen3
    JPanel screen3 = new JPanel();
    JTextPane TextPaneScreen3 = new JTextPane();
    TextPaneScreen3.setEditable(false);
    TextPaneScreen3.setBackground(new java.awt.Color(240, 240, 240));
    TextPaneScreen3.setText("Professor Phys will be instaleld in the directory you have chosen. Please make sure\nyour launcher is in that folder or the game will not work.\nClick next to begin the install process.\n");
    TextPaneScreen3.setSize(358, 48);
    TextPaneScreen3.setLocation(0, 0);
    TextPaneScreen3.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.black),BorderFactory.createEmptyBorder(5, 5, 5, 5)));
    TextPaneScreen3.setMargin(new Insets(4,4,4,4));
    screen3.add(TextPaneScreen3);
    final JButton BackScreen3 = new JButton();
    BackScreen3.setText("Back");
    BackScreen3.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {
            if(Acceptance.isSelected())
                cl.previous(cards);
        }
    });    
    screen3.add(BackScreen2);     
    final JButton NextScreen3 = new JButton();
    NextScreen3.setText("Next");
    NextScreen3.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {
            //ProgressBar/Install
            File srcFolder = new File("http://www.futureretrogaming.tk/gamefiles/ProfessorPhys");
    File destFolder = new File(filelocation.getText()+"/ProfessorPhys");

    //make sure source exists
    if(!srcFolder.exists()){

       System.out.println("Directory does not exist.");
       //just exit
       System.exit(0);

    }else{

       try{
        copyFolder(srcFolder,destFolder);
       }catch(IOException e){
        e.printStackTrace();
        //error, just exit
            System.exit(0);
       }
    }
        }
    });        
    screen3.add(NextScreen3);        
    JButton CancelScreen3 = new JButton();
    CancelScreen3.setText("Cancel");
    CancelScreen3.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {
            System.exit(0);
        }
    });      
    screen3.add(CancelScreen3);

    System.out.println("Done");
    JProgressBar progress = new JProgressBar();
    progress.setIndeterminate(true);
    screen3.add(progress);
    cards.add(screen3);
    mainframe.add(cards);
    mainframe.setVisible(true);
}

public static void copyFolder(File src, File dest)
    throws IOException{

    if(src.isDirectory()){

        //if directory not exists, create it
        if(!dest.exists()){
           dest.mkdir();
           System.out.println("Directory copied from " 
                          + src + "  to " + dest);
        }

        //list all the directory contents
        String files[] = src.list();

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

    }else{
        //if file, then copy it
        //Use bytes stream to support all file types
        InputStream in = new FileInputStream(src);
            OutputStream out = new FileOutputStream(dest); 

            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 " + src + " to " + dest);
    }
}
4

0 回答 0