JAVA 用renameTo()改名后,getName()输出的还是以前的名字,这是为什么?

 我来答
李兴双子
2016-01-19
知道答主
回答量:15
采纳率:0%
帮助的人:5.6万
展开全部
之前也有过做过类似的例子,望采纳
package my.file;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

import java.io.Writer;

public class TravelAllFile {

public static void main(String[] args) {

String path = "E:/文件夹";

File f = new File(path);

if (f.isDirectory()) {

new TravelAllFile().getFileName(f);

}

delFolder("E:/文件夹");

System.out.println("deleted");

}

// 递归查找函数,参数为file对象

public void getFileName(File f) {

// File 数组

File[] files = f.listFiles();

for (int i = 0; i < files.length; i++) {

// 递归出子目录

if (files[i].isDirectory()) {

System.out.println("子目录是:" + files[i].getName());

getFileName(files[i]);

// 递归出子文件

} else {

System.out.println(files[i].getName());

}

}

}

//重命名

public void rename(){

File fl=new File("E://文件夹"); // 这里写上发替换的文件夹路径,注意使用双斜杠

String[] files=fl.list();

File f=null;

String filename="";

for(String file:files)

{

f=new File(fl,file);// 注意,这里一定要写成File(fl,file)如果写成File(file)是行不通的,一定要全路径

filename=f.getName();

// System.out.println(filename);

f.renameTo(new File(fl.getAbsolutePath()+"//"+filename.replace("要替换掉的内容", "替换成的内容")));// 这里可以反复使用replace替换,当然也可以使用正则表达式来替换了

}

}

//删除文件夹

//param folderPath 文件夹完整绝对路径

public static void delFolder(String folderPath) {

try {

delAllFile(folderPath); //删除完里面所有内容

String filePath = folderPath;

filePath = filePath.toString();

java.io.File myFilePath = new java.io.File(filePath);

myFilePath.delete(); //删除空文件夹

} catch (Exception e) {

e.printStackTrace();

}

}

//删除指定文件夹下所有文件

//param path 文件夹完整绝对路径

public static boolean delAllFile(String path) {

boolean flag = false;

File file = new File(path);

if (!file.exists()) {

return flag;

}

if (!file.isDirectory()) {

return flag;

}

String[] tempList = file.list();

File temp = null;

for (int i = 0; i < tempList.length; i++) {

if (path.endsWith(File.separator)) {

temp = new File(path + tempList[i]);

} else {

temp = new File(path + File.separator + tempList[i]);

}

if (temp.isFile()) {

temp.delete();

}

if (temp.isDirectory()) {

delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件

delFolder(path + "/" + tempList[i]);//再删除空文件夹

flag = true;

}

}

return flag;

}

/**

* 创建目录

* @param dirPath

*/

static Boolean createDir(String dirPath){

File dirFile = new File(dirPath);

return dirFile.mkdirs();

}

/**

* 创建文件

* @param filePath

* @param content

* @return Boolean

*/

static Boolean createFile(String filePath,String content){

Writer writer = null;

File file = new File(filePath);

File temp = new File(file.getParent());

if(!temp.exists()){

createDir(file.getParent());

}

try{

writer = new OutputStreamWriter(new FileOutputStream(file));

writer.write( content );

}catch(Exception e){

e.printStackTrace();

return false;

}finally{

try{

if(writer!=null){

writer.close();

}

}catch(Exception e1){

e1.printStackTrace();

}

}

return true;

}

}
更多追问追答
追问
有没有办法该file.getName()获取的名字?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式