From: Holger Z. <hz...@us...> - 2004-09-21 10:46:25
|
Update of /cvsroot/jake2/jake2/src/jake2/qcommon In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23379/src/jake2/qcommon Modified Files: FS.java Q2DataDialog.java Log Message: FTP installer Index: Q2DataDialog.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/qcommon/Q2DataDialog.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Q2DataDialog.java 20 Sep 2004 17:59:24 -0000 1.4 --- Q2DataDialog.java 21 Sep 2004 10:46:08 -0000 1.5 *************** *** 1,268 **** ! /* ! * Q2DataDialog.java ! * ! * Created on 17. September 2004, 20:13 ! */ ! ! package jake2.qcommon; ! ! import java.awt.*; ! import java.awt.DisplayMode; ! import java.awt.GraphicsEnvironment; ! import java.io.IOException; ! ! import javax.swing.*; ! import javax.swing.JFileChooser; ! import javax.swing.JPanel; ! ! /** ! * ! * @author hoz ! */ ! public class Q2DataDialog extends javax.swing.JDialog { ! ! /** Creates new form Q2DataDialog */ ! public Q2DataDialog() { ! super(); ! initComponents(); ! ! DisplayMode mode = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode(); ! int x = (mode.getWidth() - getWidth()) / 2; ! int y = (mode.getHeight() - getHeight()) / 2; ! setLocation(x, y); ! } ! ! /** This method is called from within the constructor to ! * initialize the form. ! * WARNING: Do NOT modify this code. The content of this method is ! * always regenerated by the Form Editor. ! */ ! private void initComponents() {//GEN-BEGIN:initComponents ! java.awt.GridBagConstraints gridBagConstraints; ! ! choosePanel = new javax.swing.JPanel(); ! statusPanel = new JPanel(); ! status = new JLabel("initializing Jake2..."); ! jTextField1 = new javax.swing.JTextField(); ! changeButton = new javax.swing.JButton(); ! installButton = new javax.swing.JButton(); ! exitButton = new javax.swing.JButton(); ! okButton = new javax.swing.JButton(); ! ! setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); ! setTitle("Jake2 - Bytonic Software"); ! ! setResizable(false); ! addWindowListener(new java.awt.event.WindowAdapter() { ! public void windowClosing(java.awt.event.WindowEvent evt) { ! formWindowClosing(evt); ! } ! }); ! ! choosePanel.setLayout(new java.awt.GridBagLayout()); ! ! choosePanel.setMaximumSize(new java.awt.Dimension(400, 100)); ! choosePanel.setMinimumSize(new java.awt.Dimension(400, 100)); ! choosePanel.setPreferredSize(new java.awt.Dimension(400, 100)); ! jTextField1.setPreferredSize(null); ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 0; ! gridBagConstraints.gridy = 0; ! gridBagConstraints.gridwidth = 2; ! gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.weightx = 1.0; ! choosePanel.add(jTextField1, gridBagConstraints); ! ! changeButton.setText("change"); ! changeButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! changeButtonActionPerformed(evt); ! } ! }); ! ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 0; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; ! choosePanel.add(changeButton, gridBagConstraints); ! ! installButton.setText("Install"); ! installButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! installButtonActionPerformed(evt); ! } ! }); ! ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 0; ! gridBagConstraints.gridy = 1; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; ! choosePanel.add(installButton, gridBagConstraints); ! ! exitButton.setText("Exit"); ! exitButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! exitButtonActionPerformed(evt); ! } ! }); ! ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 1; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! choosePanel.add(exitButton, gridBagConstraints); ! ! okButton.setText("OK"); ! okButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! okButtonActionPerformed(evt); ! } ! }); ! ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 1; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; ! choosePanel.add(okButton, gridBagConstraints); ! ! //getContentPane().add(choosePanel, java.awt.BorderLayout.SOUTH); ! ! Jake2Canvas c = new Jake2Canvas(); ! getContentPane().add(c, BorderLayout.CENTER); ! ! statusPanel.setLayout(new java.awt.GridBagLayout()); ! statusPanel.setMaximumSize(new java.awt.Dimension(400, 100)); ! statusPanel.setMinimumSize(new java.awt.Dimension(400, 100)); ! statusPanel.setPreferredSize(new java.awt.Dimension(400, 100)); ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 0; ! gridBagConstraints.gridy = 0; ! gridBagConstraints.gridwidth = 1; ! gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.weightx = 1.0; ! statusPanel.add(status, gridBagConstraints); ! getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH); ! ! pack(); ! }//GEN-END:initComponents ! ! private void installButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_installButtonActionPerformed ! // TODO add your handling code here: ! }//GEN-LAST:event_installButtonActionPerformed ! ! private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitButtonActionPerformed ! System.exit(1); ! dispose(); ! }//GEN-LAST:event_exitButtonActionPerformed ! ! private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed ! ! Cvar.Set("cddir", dir); ! FS.setCDDir(); ! ! synchronized(this) { ! notifyAll(); ! } ! }//GEN-LAST:event_okButtonActionPerformed ! ! private void changeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeButtonActionPerformed ! JFileChooser chooser = new JFileChooser(); ! chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); ! chooser.setDialogType(JFileChooser.CUSTOM_DIALOG); ! chooser.setMultiSelectionEnabled(false); ! chooser.setDialogTitle("choose a valid baseq2 directory"); ! chooser.showDialog(this, "OK"); ! ! dir = null; ! try { ! dir = chooser.getSelectedFile().getCanonicalPath(); ! } catch (IOException e) {} ! jTextField1.setText(dir); ! ! }//GEN-LAST:event_changeButtonActionPerformed ! ! private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing ! System.exit(1); ! dispose(); ! }//GEN-LAST:event_formWindowClosing ! ! /** ! * @param args the command line arguments ! */ ! public static void main(String args[]) { ! new Q2DataDialog().setVisible(true); ! System.out.println("Hi"); ! } ! ! // Variables declaration - do not modify//GEN-BEGIN:variables ! private javax.swing.JButton changeButton; ! private javax.swing.JButton exitButton; ! private javax.swing.JButton installButton; ! private Jake2Canvas canvas; ! private javax.swing.JPanel choosePanel; ! private JPanel statusPanel; ! private JLabel status; ! private javax.swing.JTextField jTextField1; ! private javax.swing.JButton okButton; ! // End of variables declaration//GEN-END:variables ! ! private String dir; ! ! void showChooseDialog() { ! getContentPane().remove(statusPanel); ! getContentPane().add(choosePanel, BorderLayout.SOUTH); ! validate(); ! repaint(); ! } ! ! void showStatus() { ! getContentPane().remove(choosePanel); ! getContentPane().add(statusPanel, BorderLayout.SOUTH); ! validate(); ! repaint(); ! } ! ! void setStatus(String text) { ! status.setText(text); ! } ! ! void testQ2Data() { ! while (FS.LoadFile("pics/colormap.pcx") == null) { ! showChooseDialog(); ! ! try { ! synchronized(this) { ! wait(); ! } ! } catch (InterruptedException e) {} ! } ! showStatus(); ! } ! ! static class Jake2Canvas extends Canvas { ! private Image image; ! Jake2Canvas() { ! setSize(400, 200); ! image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/splash.png")); ! while (!Toolkit.getDefaultToolkit().prepareImage(image, -1, -1, null)) { ! try { ! Thread.sleep(50); ! } catch (InterruptedException e) {} ! } ! } ! ! ! /* (non-Javadoc) ! * @see java.awt.Component#paint(java.awt.Graphics) ! */ ! public void paint(Graphics g) { ! g.drawImage(image, 0, 0, null); ! } ! ! } ! } --- 1,398 ---- ! /* ! * Q2DataDialog.java ! * ! * Created on 17. September 2004, 20:13 ! */ ! ! package jake2.qcommon; ! ! import java.awt.*; ! import java.io.*; ! import java.net.URL; ! import java.net.URLConnection; ! import java.util.Enumeration; ! import java.util.zip.ZipEntry; ! import java.util.zip.ZipFile; ! ! import javax.swing.*; ! ! /** ! * ! * @author hoz ! */ ! public class Q2DataDialog extends javax.swing.JDialog { ! ! /** Creates new form Q2DataDialog */ ! public Q2DataDialog() { ! super(); ! initComponents(); ! ! DisplayMode mode = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode(); ! int x = (mode.getWidth() - getWidth()) / 2; ! int y = (mode.getHeight() - getHeight()) / 2; ! setLocation(x, y); ! } ! ! /** This method is called from within the constructor to ! * initialize the form. ! * WARNING: Do NOT modify this code. The content of this method is ! * always regenerated by the Form Editor. ! */ ! private void initComponents() {//GEN-BEGIN:initComponents ! java.awt.GridBagConstraints gridBagConstraints; ! ! choosePanel = new javax.swing.JPanel(); ! statusPanel = new JPanel(); ! status = new JLabel("initializing Jake2..."); ! jTextField1 = new javax.swing.JTextField(); ! changeButton = new javax.swing.JButton(); ! installButton = new javax.swing.JButton(); ! exitButton = new javax.swing.JButton(); ! okButton = new javax.swing.JButton(); ! ! setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); ! setTitle("Jake2 - Bytonic Software"); ! ! setResizable(false); ! addWindowListener(new java.awt.event.WindowAdapter() { ! public void windowClosing(java.awt.event.WindowEvent evt) { ! formWindowClosing(evt); ! } ! }); ! ! choosePanel.setLayout(new java.awt.GridBagLayout()); ! ! choosePanel.setMaximumSize(new java.awt.Dimension(400, 100)); ! choosePanel.setMinimumSize(new java.awt.Dimension(400, 100)); ! choosePanel.setPreferredSize(new java.awt.Dimension(400, 100)); ! jTextField1.setPreferredSize(null); ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 0; ! gridBagConstraints.gridy = 0; ! gridBagConstraints.gridwidth = 2; ! gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.weightx = 1.0; ! choosePanel.add(jTextField1, gridBagConstraints); ! ! changeButton.setText("change"); ! changeButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! changeButtonActionPerformed(evt); ! } ! }); ! ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 0; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; ! choosePanel.add(changeButton, gridBagConstraints); ! ! installButton.setText("Install"); ! installButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! installButtonActionPerformed(evt); ! } ! }); ! ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 0; ! gridBagConstraints.gridy = 1; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; ! choosePanel.add(installButton, gridBagConstraints); ! ! exitButton.setText("Exit"); ! exitButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! exitButtonActionPerformed(evt); ! } ! }); ! ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 1; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! choosePanel.add(exitButton, gridBagConstraints); ! ! okButton.setText("OK"); ! okButton.addActionListener(new java.awt.event.ActionListener() { ! public void actionPerformed(java.awt.event.ActionEvent evt) { ! okButtonActionPerformed(evt); ! } ! }); ! ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 1; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; ! choosePanel.add(okButton, gridBagConstraints); ! ! //getContentPane().add(choosePanel, java.awt.BorderLayout.SOUTH); ! ! Jake2Canvas c = new Jake2Canvas(); ! getContentPane().add(c, BorderLayout.CENTER); ! ! statusPanel.setLayout(new java.awt.GridBagLayout()); ! statusPanel.setMaximumSize(new java.awt.Dimension(400, 100)); ! statusPanel.setMinimumSize(new java.awt.Dimension(400, 100)); ! statusPanel.setPreferredSize(new java.awt.Dimension(400, 100)); ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 0; ! gridBagConstraints.gridy = 0; ! gridBagConstraints.gridwidth = 1; ! gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); ! gridBagConstraints.weightx = 1.0; ! statusPanel.add(status, gridBagConstraints); ! getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH); ! ! pack(); ! }//GEN-END:initComponents ! ! ! private void installButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_installButtonActionPerformed ! dir = jTextField1.getText(); ! InstallDialog installer = new InstallDialog(this, dir); ! dir += "/baseq2"; ! jTextField1.setText(dir); ! ! new Thread(installer).start(); ! ! }//GEN-LAST:event_installButtonActionPerformed ! ! private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitButtonActionPerformed ! System.exit(1); ! dispose(); ! }//GEN-LAST:event_exitButtonActionPerformed ! ! private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed ! ! dir = jTextField1.getText(); ! Cvar.Set("cddir", dir); ! FS.setCDDir(); ! ! synchronized(this) { ! notifyAll(); ! } ! }//GEN-LAST:event_okButtonActionPerformed ! ! private void changeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeButtonActionPerformed ! JFileChooser chooser = new JFileChooser(); ! chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); ! chooser.setDialogType(JFileChooser.CUSTOM_DIALOG); ! chooser.setMultiSelectionEnabled(false); ! chooser.setDialogTitle("choose a valid baseq2 directory"); ! chooser.showDialog(this, "OK"); ! ! dir = null; ! try { ! dir = chooser.getSelectedFile().getCanonicalPath(); ! } catch (IOException e) {} ! jTextField1.setText(dir); ! ! }//GEN-LAST:event_changeButtonActionPerformed ! ! private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing ! System.exit(1); ! dispose(); ! }//GEN-LAST:event_formWindowClosing ! ! // Variables declaration - do not modify//GEN-BEGIN:variables ! private javax.swing.JButton changeButton; ! private javax.swing.JButton exitButton; ! private javax.swing.JButton installButton; ! private Jake2Canvas canvas; ! private javax.swing.JPanel choosePanel; ! private JPanel statusPanel; ! private JLabel status; ! private javax.swing.JTextField jTextField1; ! private javax.swing.JButton okButton; ! // End of variables declaration//GEN-END:variables ! ! private String dir; ! ! void showChooseDialog() { ! getContentPane().remove(statusPanel); ! getContentPane().add(choosePanel, BorderLayout.SOUTH); ! validate(); ! repaint(); ! } ! ! void showStatus() { ! getContentPane().remove(choosePanel); ! getContentPane().add(statusPanel, BorderLayout.SOUTH); ! validate(); ! repaint(); ! } ! ! void setStatus(String text) { ! status.setText(text); ! } ! ! void testQ2Data() { ! while (FS.LoadFile("pics/colormap.pcx") == null) { ! showChooseDialog(); ! ! try { ! synchronized(this) { ! wait(); ! } ! } catch (InterruptedException e) {} ! } ! showStatus(); ! } ! ! static class Jake2Canvas extends Canvas { ! private Image image; ! Jake2Canvas() { ! setSize(400, 200); ! image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/splash.png")); ! while (!Toolkit.getDefaultToolkit().prepareImage(image, -1, -1, null)) { ! try { ! Thread.sleep(50); ! } catch (InterruptedException e) {} ! } ! } ! ! ! /* (non-Javadoc) ! * @see java.awt.Component#paint(java.awt.Graphics) ! */ ! public void paint(Graphics g) { ! g.drawImage(image, 0, 0, null); ! } ! ! } ! ! static class InstallDialog extends JDialog implements Runnable { ! ! static final String[] locs = { ! "ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe", ! "ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/quake2/q2-314-demo-x86.exe", ! "ftp://ftp.demon.co.uk/pub/mirrors/idsoftware/quake2/q2-314-demo-x86.exe", ! "ftp://ftp.fragzone.se/pub/spel/quake2/q2-314-demo-x86.exe" }; ! static byte[] buf = new byte[8192]; ! String destDir; ! ! JProgressBar progress = new JProgressBar(); ! JLabel label = new JLabel("test"); ! Q2DataDialog parent; ! ! public InstallDialog(Q2DataDialog parent, String dir) { ! super(parent); ! ! initComponents(); ! setResizable(false); ! ! this.parent = parent; ! destDir = dir; ! } ! ! void initComponents() { ! progress.setMinimum(0); ! progress.setMaximum(100); ! progress.setMinimumSize(new Dimension(200, 20)); ! progress.setMaximumSize(new Dimension(200, 20)); ! progress.setPreferredSize(new Dimension(200, 20)); ! getContentPane().add(progress, BorderLayout.CENTER); ! getContentPane().add(label, BorderLayout.NORTH); ! pack(); ! } ! ! public void run() { ! ! parent.setEnabled(false); ! setVisible(true); ! ! InputStream in = null; ! OutputStream out = null; ! File outFile = null; ! ! label.setText("downloading..."); ! ! try { ! URL url = new URL(locs[1]); ! URLConnection conn = url.openConnection(); ! int length = conn.getContentLength(); ! progress.setMaximum(length/1024); ! ! in = conn.getInputStream(); ! ! outFile = File.createTempFile("Jake2Data", ".zip"); ! System.out.println(outFile.getCanonicalPath()); ! outFile.deleteOnExit(); ! out = new FileOutputStream(outFile); ! ! copyStream(in, out); ! ! installData(outFile.getCanonicalPath()); ! ! } catch (Exception e) {} ! ! try { ! if (outFile != null) outFile.delete(); ! } catch (Exception e) {} ! ! setVisible(false); ! parent.setEnabled(true); ! parent.okButtonActionPerformed(null); ! dispose(); ! } ! ! ! void installData(String filename) { ! try { ! ZipFile f = new ZipFile(filename); ! Enumeration e = f.entries(); ! while (e.hasMoreElements()) { ! ZipEntry entry = (ZipEntry)e.nextElement(); ! String name = entry.getName(); ! int i; ! if ((i = name.indexOf("/baseq2")) > -1 && name.indexOf(".dll") == -1) { ! name = destDir + name.substring(i); ! File outFile = new File(name); ! if (entry.isDirectory()) { ! outFile.mkdirs(); ! } else { ! label.setText(outFile.getName()); ! progress.setMaximum((int)entry.getSize()/1024); ! progress.setValue(0); ! outFile.getParentFile().mkdirs(); ! OutputStream out = new FileOutputStream(outFile); ! InputStream in = f.getInputStream(entry); ! copyStream(in, out); ! } ! } ! } ! } catch (Exception e) { ! e.printStackTrace(); ! } ! } ! ! void copyStream(InputStream in, OutputStream out) { ! try { ! int c = 0; ! int l; ! while ((l = in.read(buf)) > 0) { ! out.write(buf, 0, l); ! c += l; ! progress.setValue(c / 1024); ! //progress.repaint(); ! } ! } catch (Exception e) { ! e.printStackTrace(); ! } ! ! try { ! in.close(); ! } catch (Exception e) {} ! try { ! out.close(); ! } catch (Exception e) {} ! } ! } ! ! } Index: FS.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/qcommon/FS.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** FS.java 20 Sep 2004 20:26:40 -0000 1.6 --- FS.java 21 Sep 2004 10:46:07 -0000 1.7 *************** *** 117,122 **** if (index > 0) { File f = new File(path.substring(0, index)); ! if (!f.mkdirs()) { ! //Com.Printf("can't create path \"" + path + '"' + "\n" ); } } --- 117,122 ---- if (index > 0) { File f = new File(path.substring(0, index)); ! if (!f.mkdirs() && !f.isDirectory()) { ! Com.Printf("can't create path \"" + path + '"' + "\n" ); } } |