File file2 = new File(dir,file.getName())boolean success = file.renameTo(file2)//里边不一定要new,是个File类型的就行
用getAbsolutePath()方法取出一个文件的绝对路径,然后进行renameTo()还是返回的false啊代码如下
f=new File(filename+dm+"2.xml")
String path=f.getAbsolutePath()
String path2=path.replaceAll("2.xml", ".xml")
System.out.println("文件路径"+path)
System.out.println("文件路径2"+path2)
f2=new File(path2)
if(f2.exists())f2.delete()
boolean t=f.renameTo(f2)
System.out.println("重命名成功:"+t)
renameTo可以用来给File改名字,改路径他需要的参数也是一个File对象,表示要把当前文件重命名(移动)为哪个文件
如果目标文件存在,则此方法返回false
renameTo不会产生新文件,他只是把文件移动一下,或者改个名字
实际上,这个方法的具体表现与 *** 作系统,和文件系统都有关系.
它不能把一个文件从一个文件系统移动到另一个文件系统,例如:
不能把c:\a.txt renameTo 为 d:\a.txt 因为c: d:属于不同的盘(文件系统)
但可以把c:\a.txt renameTo c:\system\bb.txt (路径,文件名都可以变,但还是在同一个分区)
linux,unix的分区也是同样的道理,只不过不像Windows这么明显一眼就看出来不是同一个分区
你可以在系统中试一下:
在同一个分区内,剪切一个文件 ,在粘贴到另一个位置,这是瞬间完成的,无论文件多么大.
实际上没有copy *** 作,java的renameTo就是这个意思
不同分区的话,那就得先复制,然后删除源文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)