黑马程序员技术交流社区

标题: 用Java手写一个简单的文件批量重命名工具(UI+Filebrowser) [打印本页]

作者: 冰深    时间: 2012-11-20 12:26
标题: 用Java手写一个简单的文件批量重命名工具(UI+Filebrowser)
本帖最后由 冰深 于 2012-11-20 12:31 编辑

学习javaUI和文件操作,写了一个简单的文件批量重命名的工具:
   这个小程序实现了文件夹的浏览和简单是文件夹批量重命名功能,比较粗糙

{:soso_e113:}运行效果图:



简单的实现代码:
  1. import java.awt.*;
  2. import java.io.*;
  3. import java.awt.event.*;
  4. import java.util.*;
  5. //批量重命名

  6. class RenameFile
  7. {
  8.         private Frame f;
  9.         private TextField tfPath;//文件路径
  10.         private TextField tfRepalce;//被替换的词语
  11.         private TextField tfBeRepalce;//要替换的词语

  12.         private Button btnOpenPath;//打开文件按钮
  13.         private Button btnRename;//开始重命名按钮
  14.         private Label lb;//提示信息
  15.         private TextArea ta;//文件列表
  16.         private String Dirpath="这里是提示信息";

  17.         private TreeSet<File> tsDir;
  18.         private TreeSet<File> tsFile;
  19.         RenameFile(){
  20.                 init();
  21.         }
  22.         private void AddEvents(){//事件监听
  23.                 f.addWindowListener(new WindowAdapter(){
  24.                         public void windowClosing(WindowEvent e){
  25.                                 System.exit(0);
  26.                         }
  27.                
  28.                 });

  29.                 btnOpenPath.addActionListener(new ActionListener(){//显示文件列表
  30.                         public void actionPerformed(ActionEvent e)
  31.                         {

  32.                                 ShowDir();
  33.                                 
  34.                         }
  35.                 });


  36.                 btnRename.addActionListener(new ActionListener(){//显示文件列表
  37.                         public void actionPerformed(ActionEvent e)
  38.                         {
  39.                                 String strBeReplace=tfBeRepalce.getText();
  40.                                 String strReplace=tfRepalce.getText();
  41.                                 if(strBeReplace.length()<1){
  42.                                         lb.setText("确认替换的长度大于1");
  43.                                         return;
  44.                                 }
  45.                                 //开始替换
  46.                                 if(tsFile.size()<1){
  47.                                         lb.setText("没有文件需要替换!");
  48.                                         return;
  49.                                 }
  50.                                 Iterator<File> it=tsFile.iterator();
  51.                                 while(it.hasNext()){
  52.                                        
  53.                                         File f=it.next();
  54.                                         String name=f.getName();
  55.                                         String finalName="";//最终文件名
  56.                                         String path=f.getParent();
  57.                                         if(name.contains(strBeReplace)){
  58.                                                 finalName=name.replaceAll(strBeReplace,strReplace);
  59.                                                 //path = f.getAbsolutePath();
  60.                                                 System.out.println(path+"/"+finalName);
  61.                                                 f.renameTo(new File(path+"/"+finalName));
  62.                                         }
  63.                                 }
  64.                                 ShowDir();
  65.                                 
  66.                         }
  67.                 });
  68.         }


  69.         private void ShowDir(){
  70.                 Dirpath=tfPath.getText();//获取文件夹的路径
  71.                 //判断文件夹是否存在
  72.                 File dir=new File(Dirpath);
  73.                 if(!dir.isDirectory()){
  74.                         lb.setText("该路径不是目录,请更正");        
  75.                         return;
  76.                 }
  77.                 ta.setText("");
  78.                 //遍历文件夹文件

  79.                 File[] files=dir.listFiles();
  80.                

  81.                 //TreeSet<File>
  82.                 tsDir=new TreeSet<File>();

  83.                 //TreeSet<File>
  84.                 tsFile=new TreeSet<File>();
  85.                 int countDir=0,countFile=0;

  86.                 for(File f:files){//将文件分类
  87.                         if(f.isDirectory())
  88.                         {
  89.                                 tsDir.add(f);
  90.                                 countDir++;
  91.                         }else{
  92.                                 tsFile.add(f);
  93.                                 countFile++;
  94.                         }
  95.                         //ta.append(f.getName()+"\r\n");
  96.                 }
  97.                 //显示文件列表
  98.                 Iterator<File> itDir=tsDir.iterator();
  99.                 Iterator<File> itFile=tsFile.iterator();
  100.                 //显示文件夹
  101.                 while(itDir.hasNext()){
  102.                         ta.append("["+itDir.next().getName()+"]"+"\r\n");
  103.                 }
  104.                 //显示文件
  105.                 while(itFile.hasNext()){
  106.                         File ff=itFile.next();
  107.                         String name=ff.getName();
  108.                         
  109.                         String path=ff.getParent();
  110.                
  111.                         ta.append(name+"\r\n");
  112.                 }
  113.                         ta.append("文件夹数量:"+countDir+";文件数量:"+countFile);


  114.         }


  115.         private void init(){
  116.                 f=new Frame("冰深-批量重命名工具");
  117.                 f.setBounds(300,150,600,500);
  118.                 f.setLayout(new FlowLayout());

  119.                 lb=new Label("");
  120.                 tfPath=new TextField(60);
  121.                 btnOpenPath=new Button("查看文件列表");
  122.                 tfBeRepalce=new TextField(60);
  123.                 tfRepalce=new TextField(60);
  124.                 btnRename=new Button("开始重命名");
  125.                 ta=new TextArea(20,70);
  126.                
  127.                 f.add(tfPath);
  128.                 f.add(btnOpenPath);
  129.                 f.add(tfBeRepalce);
  130.                 f.add(tfRepalce);
  131.                 f.add(btnRename);
  132.                 f.add(ta);
  133.                 f.add(lb);
  134.                
  135.                 AddEvents();//添加事件

  136.                 f.setVisible(true);
  137.         }

  138.         public static void main(String[] args)
  139.         {
  140.                 new RenameFile();
  141.         }
  142. }
复制代码
代码有点乱,主要是用editplus编写的,算是学习JavaUI和文件管理的小小应用吧~现在继续学习JavaWeb,加油啊黑马们~~~

作者: 被遗弃者    时间: 2012-11-20 13:31
给力啊 太难了
作者: 冰深    时间: 2012-11-20 13:35
被遗弃者 发表于 2012-11-20 13:31
给力啊 太难了

:lol也不算难吧~稍微麻烦点的~
作者: 王震阳老师    时间: 2012-11-20 23:46
支持一下。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2