java的FILE中的renameTo()方法使用问题

java的FILE中的renameTo()方法使用问题,第1张

public boolean renameTo(File dest) renanemTo 里的参数应该是File类型 boolean success = file.renameTo(new File(dir,file.getName()))//这里的new File(dir,file.getName())只是个参数可以这样改

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就是这个意思

不同分区的话,那就得先复制,然后删除源文件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12019121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存