⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档 (2).txt

📁 用Java开发的压缩解压缩小工具
💻 TXT
📖 第 1 页 / 共 2 页
字号:
                    {
                        progressBar.setValue(mount);
                    }

                    dest.write(data, 0, count);
                }
                dest.flush();
                dest.close();
                is.close();
            }
        } catch (Exception e)
        {
            e.printStackTrace();
        } finally
        {
            try
            {
                if (dest != null)
                {
                    dest.flush();
                    dest.close();
                }
                if (is != null)
                {
                    is.close();
                }
                if(!stop)
                textArea.append("-------------------------"+"\n"
                                +"解压完毕!"+"\n") ;
            } catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }



 }

  String choosenDir()
  {
    JFileChooser chooser = new JFileChooser();
    chooser.setCurrentDirectory(new File(".") );

    //chooser.setMultiSelectionEnabled(true) ;
    chooser.setFileSelectionMode(chooser.DIRECTORIES_ONLY);
    int r =chooser.showOpenDialog(MyZipFrame.this) ;

    //currentDirectory = chooser.getCurrentDirectory().toString();
    if(r==JFileChooser.APPROVE_OPTION)
    {
      return chooser.getSelectedFile().toString();
    }
    return null;
  }


 /**
 *<br>方法说明:读取Zip文件列表
 *<br>输入参数:String fileName zip文件名
 *<br>返回类型:Vector 文件列表
 */
  public Vector listFile(String fileName){
    try{
       String[] aRst=null;
       Vector vTemp = new Vector();
       //zip文件对象
       ZipFile zf = new ZipFile(fileName+".zip");
       Enumeration e = zf.entries();
       while(e.hasMoreElements()){
         ZipEntry ze2 = (ZipEntry)e.nextElement();
         System.out.println("File: "+ze2);
         vTemp.addElement(ze2);
       }
       return  vTemp;
    }catch(Exception e){
      System.err.println(e);
      return null;
    }
  }
   String[] openFileDialog(){
    JFileChooser chooser = new JFileChooser();
      chooser.setCurrentDirectory(new File(".") );

      chooser.setMultiSelectionEnabled(true) ;
      chooser.setFileSelectionMode(chooser.FILES_ONLY);
      int r =chooser.showOpenDialog(MyZipFrame.this) ;

      currentDirectory = chooser.getCurrentDirectory().toString();

     if(r==JFileChooser.APPROVE_OPTION)
    {

      File[] files = chooser.getSelectedFiles();System.out.println(files.length );
      String[] names = new String[files.length+1];
      names[0]=files[0].toString() ;selectedFile=files[0].getName();
      for (int i = 0; i < files.length; i++)
      {
        names[i+1]=files[i].toString();
        //textArea.append("\n"+files[i].toString());
        System.out.println("fff  "+files[i].toString() );
      }


      return names;
    }
    return null;
  }
  String[] openDirDialog()
  {
    int numOfFiles=0;
    JFileChooser chooser = new JFileChooser();
    chooser.setCurrentDirectory(new File(".") );
    //chooser.setMultiSelectionEnabled(true) ;
    chooser.setFileSelectionMode(chooser.DIRECTORIES_ONLY);
    int r =chooser.showOpenDialog(MyZipFrame.this) ;

    currentDirectory = chooser.getCurrentDirectory().toString();
    if(r==JFileChooser.APPROVE_OPTION)
    {
      selectedFile = chooser.getSelectedFile().toString();

      dirListing(new File(selectedFile), numOfFiles);

      String[] names = new String[record.length + 1];
      names[0] = selectedFile;
      for (int i = 1; i < record.length + 1; i++) {
        names[i] = record[i - 1];
      }


        return names;

    }
    return null;
  }
  void dirListing(File dir,int numOfFiles)
  {

    String[] fileList=dir.list();
    String dirPath=dir.getAbsolutePath();
    for(int i=0;i<fileList.length ;i++)
    {
      File file=new File(dirPath+"\\"+fileList[i]);
      if (file.isFile())
      {
        record[numOfFiles]=file.getAbsolutePath();
        numOfFiles++;
      }
      else
        dirListing(file,numOfFiles);

    }

  }

  void jMenuFileOpenFile_actionPerformed(ActionEvent e) {
    progressBar.setValue(0) ;
    String[] files = new String[100];
    isCompress=true;
    dirZip=false;
    cancel=false;
    isDecompress=false;
    files=openFileDialog();
    if(files!=null)
     {
       openFile_files=files;
       textArea.setText("----------信息列表----------"+"\n"+
                        "将要压缩文件: "+"\n"
                        +selectedFile+"等"+"\n"
                        +"--------------------------"+"\n"
                        +"请选择压缩路径"+"\n"
                        );
       choosen=choosenDir();System.out.println("FFFFFFFFFFFF: "+choosen+"\\"+openFile_files[0].substring(openFile_files[0].lastIndexOf("\\")+1)+".zip");
       checkExist(choosen+"\\"+openFile_files[0].substring(openFile_files[0].lastIndexOf("\\")+1)+".zip");
       if(cancel)
       {
         isCompress=false;
         dirZip=false;
       }
       else if(!cancel&&choosen!=null)

       textArea.append("压缩到:"+"\n"
                       +choosen+"\n"
                       +"---------------------------"+"\n"
                       +"单击\"开始\"按钮开始压缩"+"\n"
                       +"---------------------------"+"\n") ;


     }
    if(files==null||cancel ||choosen==null)
      textArea.setText("你取消了压缩选项!"+"\n") ;


   }
   String nameList()
   {
     int i=1;String list="";
     while(openFile_files[i]!=null)
     {
       list=list+openFile_files[i]+"/n";
      }
      return list;
  }
  void checkExist(String targetFilePathName)
  {
    File targetFile=new File(targetFilePathName);
    System.out.println("CCCCCCC:  "+targetFilePathName);
                //检查目标文件名,防止被覆盖
                if(targetFile.exists())
                {
                    int option=JOptionPane.showConfirmDialog(null,
                        "目标文件已存在,是否覆盖目标文件?");
                    switch(option)
                    {
                    case JOptionPane.YES_OPTION:
                        break;
                    case JOptionPane.NO_OPTION:
                        /*while(targetFile.exists())
                        {
                            targetFile=new File(targetFile.getParent()+
                                                "\\"+"(new)"+targetFile.getName());
                        }
                        JOptionPane.showMessageDialog(null,
                            "目标文件重命名为: "+targetFile.getAbsolutePath());*/
                         cancel=true;
                        break;
                    case JOptionPane.CANCEL_OPTION:
                        cancel=true;
                        return;
                    default:
                        return;
                    }
                }

  }


  void jMenuFileOpenZip_actionPerformed(ActionEvent e) {
    progressBar.setValue(0) ;
    String[] files = new String[100];
    cancel=false;
    isDecompress=true;
    isCompress=false;
    files=openFileDialog();
    if(files!=null)
     {
       firstFile=files[0];
       textArea.setText("----------信息列表----------"+"\n"+
                        "将要解压缩文件: "+"\n"
                        +selectedFile+"\n"
                        +"--------------------------"+"\n"
                        +"请选择解压路径"+"\n"
                        );
       choosen=choosenDir();
       checkExist(choosen+"\\"+selectedFile.substring(0,selectedFile.length()-4));
       if(cancel)
         isDecompress=false;

       else  if(!cancel&&choosen!=null)

       textArea.append("解压缩到:"+"\n"
                       +choosen+"\n"
                       +"---------------------------"+"\n"
                       +"单击\"开始\"按钮开始解压缩"+"\n"
                       +"---------------------------"+"\n") ;


     }
    if(files==null||cancel||choosen==null)
      textArea.setText("你取消了解压选项!"+"\n") ;


   }

  void unzipButton_actionPerformed(ActionEvent e) {

    jMenuFileOpenFile_actionPerformed(e);
  }

  void zipButton_actionPerformed(ActionEvent e) {
    jMenuFileOpenDir_actionPerformed( e);
  }

  void startButton_actionPerformed(ActionEvent e) {
    Zip zip=new Zip();
    stop=false;
    thread = new Thread(zip);
    thread.start();

  }

  void stopButton_actionPerformed(ActionEvent e) {
    stop=true;
  }
  void jMenuFileOpenDir_actionPerformed(ActionEvent e)
  {
    progressBar.setValue(0) ;
    String[] files = new String[100];
    dirZip=true;
    isCompress=true;
    cancel=false;
    isDecompress=false;
    files=openDirDialog();
    if(files!=null)
     {
       openDir_files=files;
       textArea.setText("----------信息列表----------"+"\n"+
                        "将要压缩目录: "+"\n"
                        +selectedFile+"\n"
                        +"--------------------------"+"\n"
                        +"请选择压缩路径"+"\n"
                        );
       choosen=choosenDir();System.out.println("DDDDDDDDDDDDD: "+choosen+"\\"+openDir_files[0].substring(openDir_files[0].lastIndexOf("\\")+1)+".zip");
       checkExist(choosen+"\\"+openDir_files[0].substring(openDir_files[0].lastIndexOf("\\")+1)+".zip");
       if(cancel)
       {
         isCompress=false;
         dirZip=false;
       }

       else  if(!cancel&&choosen!=null)
       textArea.append("压缩到:"+"\n"
                       +choosen+"\n"
                       +"---------------------------"+"\n"
                       +"单击\"开始\"按钮开始压缩"+"\n"
                       +"---------------------------"+"\n") ;

     }
    if(files==null||cancel||choosen==null)
      textArea.setText("你取消了压缩选项!"+"\n") ;

  }


}




class MyZipFrame_jMenuFileExit_ActionAdapter implements ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_jMenuFileExit_ActionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuFileExit_actionPerformed(e);
  }
}

class MyZipFrame_jMenuHelpAbout_ActionAdapter implements ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_jMenuHelpAbout_ActionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuHelpAbout_actionPerformed(e);
  }
}

class MyZipFrame_jMenuFileOpenFile_actionAdapter implements java.awt.event.ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_jMenuFileOpenFile_actionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuFileOpenFile_actionPerformed(e);
  }
}

class MyZipFrame_jMenuFileOpenZip_actionAdapter implements java.awt.event.ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_jMenuFileOpenZip_actionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuFileOpenZip_actionPerformed(e);
  }
}

class MyZipFrame_unzipButton_actionAdapter implements java.awt.event.ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_unzipButton_actionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.unzipButton_actionPerformed(e);
  }
}

class MyZipFrame_zipButton_actionAdapter implements java.awt.event.ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_zipButton_actionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.zipButton_actionPerformed(e);
  }
}

class MyZipFrame_startButton_actionAdapter implements java.awt.event.ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_startButton_actionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.startButton_actionPerformed(e);
  }
}

class MyZipFrame_stopButton_actionAdapter implements java.awt.event.ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_stopButton_actionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.stopButton_actionPerformed(e);
  }
}

class MyZipFrame_jMenuFileOpenDir_actionAdapter implements java.awt.event.ActionListener {
  MyZipFrame adaptee;

  MyZipFrame_jMenuFileOpenDir_actionAdapter(MyZipFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuFileOpenDir_actionPerformed(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -