java批量修改文件名--beta1

公司数据文件时标不对,所有的文件必须要修改文件名来对应时标。
所以就写下了这个批量修改文件名的程序。
我的这个文件修改是很有规律的,所以在看之前首先问下你的那个有没有规律。
如果没有的话,可以采用弄一个数据库table来进行修改。
一下是源代码:
package com.duduli.li;

import java.io.File;

/*
 * @duduli
 * 把需要修改的文件放在f:\filedir下面,生成的文件会在D:\1文件夹下面。
 * 错误一:没按时间进位,会出现09_20091020_DI02_425.xml.gz,和09_20091020_DI02_125.xml.gz.的文件。
对于125的文件不必修改前面的20091020,只需要把125改为101就可以了,但是对于425的文件就需要修改时间了把时间推后一天改为09_20091021_DI02_401.xml.gz.。


 
*/
public class ReFileName {

    
public static void findFile(String filePath) {
        File file 
= new File(filePath);
        
if (file.isDirectory()) {
            String[] fileDir 
= file.list();
            String fileNameWithPath;
            
for (int i = 0; i < fileDir.length; i++) {
                String fileNewName 
= "";
                System.out.println(file.getAbsolutePath() 
+ "\\" + fileDir[i]);
                fileNameWithPath 
= file.getAbsolutePath() + "\\" + fileDir[i];
//                文件时间推后一个小时
                int addOne = Integer.parseInt(fileDir[i].substring(1416)) + 1;
                
// String addOneToString = addOne + "";
                if (addOne <= 9) {
                    fileNewName 
= "06" + fileDir[i].substring(214+ "0"
                            
+ addOne + ".xml.gz";
                } 
else {
                    fileNewName 
= "06" + fileDir[i].substring(214+ addOne
                            
+ ".xml.gz";
                }

                
// String fileNewName = "06"+fileDir[i].substring(2,14);
                System.out.println(fileNewName);
                
// System.out.println(addOne);
                File f = new File(fileNameWithPath);
                 f.renameTo(
new File("d:\\1\\"+fileNewName));
            }
            
// File fileAbsPath = new File (file)
            
// System.out.println(file.getAbsolutePath());
        } else {
            String[] fileDoc 
= file.list();
            
for (int i = 0; i < fileDoc.length; i++) {
                System.out.println(
"file dire: " + fileDoc[i]);
            }
        }
    }

    
/**
     * 
@param args
     
*/
    
public static void main(String[] args) {
        
// TODO Auto-generated method stub
        findFile("f:/filedir");
    }

}
源代码如下,其实思想很简单使用的方法也就只有几个。
三个月没摸Java了感觉都生疏了。
兴趣的话可以将那个跨天和跨月的弄一些,其实也很简单,只是没那么时间。

posted on 2009-11-07 12:01 duduli 阅读(2182) 评论(3)  编辑  收藏 所属分类: java

评论

# re: java批量修改文件名--bate1 2009-11-08 16:02 千里冰封

bate1是什么意思?  回复  更多评论   

# re: java批量修改文件名--beta1 2009-11-09 12:22 duduli

@千里冰封
打错字了。多谢提醒。  回复  更多评论   

# re: java批量修改文件名--beta1[未登录] 2009-11-09 15:44 jet

应给可以使用ubuntu中的rename吧。他可以支持正则表达式很是强大  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年11月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

公告

welcome to my place.

常用链接

留言簿(5)

我参与的团队

随笔分类

随笔档案

新闻分类

石头JAVA摆地摊儿

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

@duduli