当前位置:编程学习 > JAVA >>

java更改文件名的程序,renameTo一直返回false,请各位给看看

比如我有两个文件夹,
一个文件夹E:\r\01里面的文件名依次是01-0001.txt 01-0002.txt .......01-0999.txt
另一个文件夹E:/OstuBin_m里面的图片文件名依次01-000001-1_b.jpg 01-000051-1_b.jpg 01-000101-1_b.jpg......01-047151-1_b.jpg
两个文件夹中的文件一一对应,现在用一个java程序来把所有txt后缀的文件名都改成跟对应的.jpg文件名一样,也就是除了后缀都改成一样的。

但是下面的程序一直无法更改,renameTo函数一直返回false,郁闷了
















import java.io.File;
import java.util.ArrayList;
import java.util.List;


public class Test {

/**
 * @param args
 */
public static void main(String[] args) {

File dir_srcF = new File("E:/r/01");
File dir_destF = new File("E:/OstuBin_m");

//存放目录中所有文件名的数组
String filename1[] = dir_srcF.list();
String filename2[] = dir_destF.list();

//文件目录前缀
String dir_dest = "E:/OstuBin_m/";
String dir_src = "E:/r/01/";

//文件完整路径
String path_src;
String path_dest;

//File src_name = dir1+ filename1[0];
//File dest_name = dir2 + filename2[0];
//存放所有文件完整路径的链表
List namelist_of_dirS = new ArrayList();
List namelist_of_dirD = new ArrayList();



for(int i=0;i<filename1.length;i++)
{
path_src = dir_src + filename1[i];
path_dest = dir_dest + filename2[i];

System.out.println(path_src+"------>"+path_dest);
//namelist_of_dirS.add(path_dest);

namelist_of_dirS.add(path_src);
namelist_of_dirD.add(path_dest);
}


//File file_src = new File((String)namelist_of_dirS.get(0));
//File file_dest = new File((String)namelist_of_dirD.get(0));

//System.out.println(file_src.renameTo(file_dest));


// File temp = new File(dir_dest+"01_000001-1_b.txt");

//System.out.println(file_src.exists());
//System.out.println(temp.exists());


//System.out.println(file_src.renameTo(file_dest));

//System.out.print("press anykey to continue!");

for(int i=0;i<filename1.length;i++)
{
File file_src = new File((String)namelist_of_dirS.get(0));
File file_dest = new File((String)namelist_of_dirD.get(0));
System.out.println(file_src.renameTo(file_dest));
}

System.out.print("done");
return ;
}

}

--------------------编程问答--------------------
引用楼主 lc_windson 的回复:
比如我有两个文件夹,
一个文件夹E:\r\01里面的文件名依次是01-0001.txt 01-0002.txt .......01-0999.txt
另一个文件夹E:/OstuBin_m里面的图片文件名依次01-000001-1_b.jpg 01-000051-1_b.jpg 01-000101-1_b.jpg......01-047151-1_b.jpg
两个文件夹中的文件一一对应,现在用……


不好意思,程序贴错了,是下面这个


import java.io.File;
import java.util.ArrayList;
import java.util.List;


public class Test {

/**
 * @param args
 */
public static void main(String[] args) {

File dir_srcF = new File("E:/r/01");
File dir_destF = new File("E:/OstuBin_m");

//存放目录中所有文件名的数组
String filename1[] = dir_srcF.list();
String filename2[] = dir_destF.list();

//文件目录前缀
String dir_dest = "E:/OstuBin_m/";
String dir_src = "E:/r/01/";

//文件完整路径
String path_src;
String path_dest;

//File src_name = dir1+ filename1[0];
//File dest_name = dir2 + filename2[0];
//存放所有文件完整路径的链表
List namelist_of_dirS = new ArrayList();
List namelist_of_dirD = new ArrayList();



for(int i=0;i<filename1.length;i++)
{
path_src = dir_src + filename1[i];
path_dest = dir_dest + filename2[i];

System.out.println(path_src+"------>"+path_dest);
//namelist_of_dirS.add(path_dest);

namelist_of_dirS.add(path_src);
namelist_of_dirD.add(path_dest);
}


//File file_src = new File((String)namelist_of_dirS.get(0));
//File file_dest = new File((String)namelist_of_dirD.get(0));

//System.out.println(file_src.renameTo(file_dest));


// File temp = new File(dir_dest+"01_000001-1_b.txt");

//System.out.println(file_src.exists());
//System.out.println(temp.exists());


//System.out.println(file_src.renameTo(file_dest));

//System.out.print("press anykey to continue!");

for(int i=0;i<filename1.length;i++)
{
File file_src = new File((String)namelist_of_dirS.get(i));
File file_dest = new File((String)namelist_of_dirD.get(i));
System.out.println(file_src.renameTo(file_dest));
}

System.out.print("done");
return ;
}

}

--------------------编程问答--------------------
引用楼主 lc_windson 的回复:
比如我有两个文件夹,
一个文件夹E:\r\01里面的文件名依次是01-0001.txt 01-0002.txt .......01-0999.txt
另一个文件夹E:/OstuBin_m里面的图片文件名依次01-000001-1_b.jpg 01-000051-1_b.jpg 01-000101-1_b.jpg......01-047151-1_b.jpg
两个文件夹中的文件一一对应,现在用……

两个文件夹中的文件一一对应???????????怎么对应法????????
我看到你的前2个文件名 猜想出这样的对应法 result = 1 + (n-1)*50    其中n = 1,2...999
就是
01-0001.txt    ------------> 01-000001-1_b.jpg
01-0002.txt    ------------> 01-000051-1_b.jpg
01-0003.txt     ------------> 01-000101-1_b.jpg


01-0999.txt     ------------> 01-049901-1_b.jpg

最后一个怎么回事了?????????????????对不上题目了 
楼主 拜托了,出题之前 说具体点,别搞那么抽象. 别以为大家都懂你的意思 要不大家时间给你浪费了
  --------------------编程问答--------------------
引用 2 楼 k3108001263 的回复:
引用楼主 lc_windson 的回复:
比如我有两个文件夹,
一个文件夹E:\r\01里面的文件名依次是01-0001.txt 01-0002.txt .......01-0999.txt
另一个文件夹E:/OstuBin_m里面的图片文件名依次01-000001-1_b.jpg 01-000051-1_b.jpg 01-000101-1_b.jpg......01-047151-1_b……

文件对应起来有点问题,估计是楼主写错了吧?
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,