0

ここからスタックオーバーフローで見つけたこのコードを使用しています。ただし、ディレクトリが存在しないことを常に返します。何度も確認しましたが、実際に存在します。理由はありますか?サーバー上でこれ以上変更することはできないようです。全員に読み取り権限を設定しました。おそらくより良い方法はありますか?

    //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