java改变文件名 我有一个文件D:\a.txt,想改成D:\b.txt. 只是改文件名,不改变目录结构。我用的renameTo,但是老是返回false,请问是咋个回事呢?怎么安全的重命名文件呢?首先,我没有与b.txt同名的文件。请问怎么回事呢?有时候能成功。很多时候不能。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /* * Created on Sep 28,2008 * * Copyright 布谷鸟 */package file;import java.io.File;/** * * @Author <a href="[email protected]">cuckoo</a> * @Time 15:24 * @Description rename file * */public class ChangeName { public static void main(String args[]){ File orginalFile = new File("C:/file.txt"); if(orginalFile.exists()){ //get directory String dir = orginalFile.getParent(); System.out.println(dir); String newName = "new.txt"; File newFile = new File(dir+newName); if(orginalFile.renameTo(newFile)){ System.out.println(" change name success "); }else{ System.out.println(" fuck ."); } } }} /** GOOD LUCK */---------------------------------------------------Quietly through .... File newFile = new File(dir+newName);改成: File newFile = new File(dir + File.separator +newName); 谢啦-----------------------------------Quietly through .... 代码很简单:String filePath = "D:\a.txt";str = "D:\b.txt";File file = new File(filePath); File dstfile = new File(str); if(!file.renameTo(dstfile)) { log.WriteInfoLog("UpdateFile"+str+"失败"); } } catch(Exception e) { log.WriteErrorLog("UpdateFile:"+e.getMessage()); } 使用renameTo public boolean renameTo(File dest)重新命名此抽象路径名表示的文件。 此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,该操作可能不是原子的,如果已经存在具有目标抽象路径名的文件,则该操作可能无法获得成功。应该始终检查返回值,确保重命名操作成功。 import java.io.*;public class x6 { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 File f=new File("D:/55273.mp3"); String vv=f.getParent(); String filenew="0001.txt"; File newfile=new File(vv+File.separator+filenew); if(f.renameTo(newfile)==true) { System.out.println("操作成功!"); } else { System.out.println("操作失败!"); } }} public void rename(String filepath) { File file = new File(filepath); File temp[] = file.listFiles(); String str[] = new String[temp.length]; ArrayList temparray = new ArrayList(); System.out.println(temp.length); String tempname = ""; for (int k = 0; k < temp.length; k++) { String name = temp[k].getName(); tempname = "G:/1/" + cutName(name);// "G:/1/" temp[k].renameTo(new File(tempname)); } } 请教各位:java的一个程序是否可以执行两个线程,而这两个线程执行的内容不一样 为什么用writeUTF()写不进字符呢 CronExpression中如何配置每个月最后2个工作日? 怎样用Java获取银江网络行情的数据? Eclipse下包的引用的问题 在java中怎么向串口发送回车符号? Java的批处理如何返回一个以上的值 resin+iis配置的简单问题(可另开帖给分) 读取文本框中的换行。 java GUI窗口连续关闭问题 命令行java命令 如何运行多个class文件? java操作 powerpoint 生成图表?
/*
* Created on Sep 28,2008
*
* Copyright 布谷鸟
*/
package file;import java.io.File;/**
*
* @Author <a href="[email protected]">cuckoo</a>
* @Time 15:24
* @Description rename file
*
*/
public class ChangeName {
public static void main(String args[]){
File orginalFile = new File("C:/file.txt");
if(orginalFile.exists()){
//get directory
String dir = orginalFile.getParent();
System.out.println(dir);
String newName = "new.txt";
File newFile = new File(dir+newName);
if(orginalFile.renameTo(newFile)){
System.out.println(" change name success ");
}else{
System.out.println(" fuck .");
}
}
}
}
/** GOOD LUCK */---------------------------------------------------
Quietly through ....
改成:
File newFile = new File(dir + File.separator +newName);
-----------------------------------
Quietly through ....
str = "D:\b.txt";
File file = new File(filePath);
File dstfile = new File(str);
if(!file.renameTo(dstfile))
{
log.WriteInfoLog("UpdateFile"+str+"失败");
}
}
catch(Exception e)
{
log.WriteErrorLog("UpdateFile:"+e.getMessage());
}
此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,该操作可能不是原子的,如果已经存在具有目标抽象路径名的文件,则该操作可能无法获得成功。应该始终检查返回值,确保重命名操作成功。 import java.io.*;
public class x6 { /**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根 File f=new File("D:/55273.mp3");
String vv=f.getParent();
String filenew="0001.txt";
File newfile=new File(vv+File.separator+filenew);
if(f.renameTo(newfile)==true)
{
System.out.println("操作成功!");
}
else
{
System.out.println("操作失败!");
}
}}
File file = new File(filepath);
File temp[] = file.listFiles();
String str[] = new String[temp.length];
ArrayList temparray = new ArrayList();
System.out.println(temp.length);
String tempname = "";
for (int k = 0; k < temp.length; k++) {
String name = temp[k].getName();
tempname = "G:/1/" + cutName(name);// "G:/1/"
temp[k].renameTo(new File(tempname));
}
}