我在使用renameTo()时遇到了一个奇怪的问题。我不知道为什么无法将文件重命名为/mnt/desttest
,但可以重命名为/home/kit.ho/desttest
。然而,我已经给/mnt/赋予了所有写权限。返回值为false,但没有具体原因。谁知道原因?
import java.io.File;
public class renameFile {
public static void main(String[] args) {
File sourceFile = new File("/home/kit.ho/test");
File targetFile1 = new File("/mnt/desttest");
System.out.println("source file is exist? " + sourceFile.exists() + ", source file => " + sourceFile);
System.out.println(targetFile1 + " is exist? " + targetFile1.exists());
System.out.println("rename to " + targetFile1 + " => " + sourceFile.renameTo(targetFile1));
System.out.println("source file is exist? " + sourceFile.exists() + ", source file => " + sourceFile);
}
}
编辑: 根据一些答案,重命名函数不能跨文件系统工作,是否有任何方法来解决这个问题,而不调用外部命令如“mv”?
/mnt
是一个单独的分区吗? - Mechanical snailmv /home/kit.ho/test /mnt/desttest
吗? - Martin