android – File.renameTo()返回true,但文件尚未重命名

我正在尝试为我的录音机创建一个文件,但是这个文件不断获得一个随机名称.因为这很难处理,所以我希望在使用更有意义的名称创建文件重命名文件.

但是,即使renameto返回true,该文件仍未重命名.

在这里做错了吗?

outfile = File.createTempFile(amount + "_alarmsave",".3gp",storageDir);

            System.out.println("Old file: "+outfile.getAbsolutePath());

            File newFile = new File(outfile.getParent(),"alarmsave_" + amount + ".3gp");

            System.out.println("new file: "+newFile.getAbsolutePath());

            if(outfile.renameto(newFile)){
                System.out.println("Succes! Name changed to: " + outfile.getName());
            }else{
                System.out.println("Failed");
            }

LogCat输出

01-13 18:27:40.264: I/System.out(22913): Old file: /mnt/sdcard/Personal Alarm/13_alarmsave1623959934.3gp
01-13 18:27:40.264: I/System.out(22913): new file: /mnt/sdcard/Personal Alarm/alarmsave_13.3gp
01-13 18:27:40.284: I/System.out(22913): Succes! Name changed to: 13_alarmsave1623959934.3gp

解决方法

Rename要重命名实际文件,它不会更改 File对象.如果你调用.exists(),你会发现新文件存在而旧文件不存在.

这是因为File类表示文件系统上的抽象路径而不是实际文件.我们的想法是File.renameto为给定路径的文件系统条目提供一个名称;它不会改变路径本身.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...