java运行时处理文件路径的问题~~

时间:2023-02-11 09:16:30
我写的一个改名的程序,直接指定了要改的文件目录
生成的文件直接被move到了我Eclipse下面去了
哪位帮忙看下。。
package try1;
//把文件名从小写改成大写
import java.io.*;
import java.util.*;
public class ChangeFileName {
public static void main(String[] args){
System.out.println("main begin~~~~~~");
String path = new String("C:\\a2");
ChangePathName(path);
System.out.println("main end~~~~~~~");
}
// 改变某一特定目录及子目录下的文件名
public static void ChangePathName(String path){
System.out.println("change begin=========================");
File d = new File(path);
// 取得当前文件目录下所有文件和目录列表
File lists[] = d.listFiles();
String pathss=new String("");
//对当前目录下面所有文件进行检索改名
for (int i = 0;i<lists.length;i++){
if(lists[i].isFile()){
String filename = lists[i].getName();
lists[i].renameTo(new File(UpCase(filename)));
}
else{
pathss = path;
// 进入下级目录
pathss = pathss+lists[i].getName()+"\\";
//递归遍历所有目录
ChangePathName(pathss);
}
}
System.out.println("change end==============================");
}
//把.gz之前的小写改为大写
public static String UpCase(String filename){
System.out.println("upCase begin~<<<<<<<~~");
StringTokenizer stoke = new StringTokenizer(filename,".");
int z = 0;
ArrayList a11 =new ArrayList();
while(stoke.hasMoreElements()){

a11.add(stoke.nextToken().toString());
z++;
}
String tmpstr=a11.get(0).toString().toUpperCase();
for(int j=1;j<a11.size();j++)
tmpstr=tmpstr+"."+(String)a11.get(j);

System.out.println("new filename is:"+tmpstr);
System.out.println("upCase end<<<<<<<<<<~");
return tmpstr;
}
}

7 个解决方案

#1


主要是执行路径的问题。。,文件在new file()的时候直接在程序目录下生成。。
就是这个东西咋改

#2


解决了可以在一个帖子再得100分。。
http://topic.csdn.net/u/20090710/15/41885976-a785-461c-831c-159e265e23a3.html

#3


先说一下;
楼主以后不要这样定义String了
String path = new String("C:\\a2"); 

直接:String path = "C:\\a2"; 

#4


O(∩_∩)O 谢谢~~

#5


String filename = lists[i].getName();   //这里得到的文件明不含有路径信息
lists[i].renameTo(new File(UpCase(filename))); //用不含路径的文件名生成文件,就在执行程序的目录下了

你看看File的getter方法,找几个合适的吧

#6


lists[i].renameTo(new File(UpCase(filename))); 
这句修改为:
lists[i].renameTo(new File(path+"\\"+UpCase(filename)));

#7


lists[i].renameTo(new File(path+"\\"+UpCase(filename)));
这个Ok了~~谢谢各位。。想加点分到到2楼那个链接去发个信。。
我开始试过一次。。在里面加了个引号。。郁闷了
lists[i].renameTo(new File(“path+"\\"+UpCase(filename)”));
好久没玩代码了。。

#1


主要是执行路径的问题。。,文件在new file()的时候直接在程序目录下生成。。
就是这个东西咋改

#2


解决了可以在一个帖子再得100分。。
http://topic.csdn.net/u/20090710/15/41885976-a785-461c-831c-159e265e23a3.html

#3


先说一下;
楼主以后不要这样定义String了
String path = new String("C:\\a2"); 

直接:String path = "C:\\a2"; 

#4


O(∩_∩)O 谢谢~~

#5


String filename = lists[i].getName();   //这里得到的文件明不含有路径信息
lists[i].renameTo(new File(UpCase(filename))); //用不含路径的文件名生成文件,就在执行程序的目录下了

你看看File的getter方法,找几个合适的吧

#6


lists[i].renameTo(new File(UpCase(filename))); 
这句修改为:
lists[i].renameTo(new File(path+"\\"+UpCase(filename)));

#7


lists[i].renameTo(new File(path+"\\"+UpCase(filename)));
这个Ok了~~谢谢各位。。想加点分到到2楼那个链接去发个信。。
我开始试过一次。。在里面加了个引号。。郁闷了
lists[i].renameTo(new File(“path+"\\"+UpCase(filename)”));
好久没玩代码了。。