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

San*_*eer 8 android file file-rename

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

但是,即使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");
            }
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

Jon*_*oni 18

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

这是因为File该类表示抽象路径而不是文件系统上的实际文件.这个想法是File.renameTo给出给定路径上的文件系统条目的新名称; 它不会改变路径本身.