Java:为什么这样重命名不行呢?费解
importjava.io.File;publicclassTest{publicstaticvoidmain(String[]args){Filefile=newFil...
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("E://test.log");
rename(file);
}
private static void rename(File file) {
if (file.exists()) {
String demo=file.getName()+"_delete";
file.renameTo(new File(demo));
}
}
}
想把test.log文件重命名为test.log_delete,为什么一运行就直接将文件删除了呢?为什么会这样呢?费解......
卧槽
知道了...getName只会获得文件名,不会获得前面的路径... 展开
public class Test {
public static void main(String[] args) {
File file = new File("E://test.log");
rename(file);
}
private static void rename(File file) {
if (file.exists()) {
String demo=file.getName()+"_delete";
file.renameTo(new File(demo));
}
}
}
想把test.log文件重命名为test.log_delete,为什么一运行就直接将文件删除了呢?为什么会这样呢?费解......
卧槽
知道了...getName只会获得文件名,不会获得前面的路径... 展开
展开全部
1.权限问题,打开不存在;2.没有被删除,看看file.renameTo(new File(demo));返回是否为true,如果为true,则表示文件被重命名到一个你找不到的地方了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-20
展开全部
此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,该操作不是不可分的,如果已经存在具有目标抽象路径名的文件,那么该操作可能无法获得成功。应该始终检查返回值,以确保重命名操作成功。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是被删除了,而是String demo=file.getName()+"_delete";
demo=test.log_delete,没有e:\\
不是删除了文件,而是将文件改名并搬动到当前目录了,你检查一下Test .java的当前目录就知道了。
修改的话你试试String demo=file.getAbsolutePath()+"_delete";
demo=test.log_delete,没有e:\\
不是删除了文件,而是将文件改名并搬动到当前目录了,你检查一下Test .java的当前目录就知道了。
修改的话你试试String demo=file.getAbsolutePath()+"_delete";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以这样,在if语句里打印一下这个demo的值,我试了下照你的写法输出值是test.log_delete。因为getName是不带路径的,你可以在字符串中加上路径就可以得到正确结果了:String demo = "E://"+file.getName() +"_delete",测试成功
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
renameTo(stirng file)
过程复制原文件至指定位置并命名,之后删除原文件
你这里的文件操作后,原文件删除,新文件位置在工作空间,不在E盘
if (file.exists()) {
String demo=file.getName()+"_delete";
String path = file.getAbsolutePath();
file.renameTo(new File(file.getAbsolutePath().substring(0, path.lastIndexOf("\\"))+demo));
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询