gpt4 book ai didi

java - renameTo() 在 eclipse Helios 中不起作用

转载 作者:行者123 更新时间:2023-11-29 06:05:39 26 4
gpt4 key购买 nike

这是一个显示 4 个案例的简单类。对不起我的英语(不好)

public static void main(String[] args) throws IOException {

//TODO De temporal a archivo en directorio
//TODO from file in temporary folder to file in common folder.
File fromTemp_Dir = File.createTempFile("Temp_Dir_FROM", ".temp");
File toTemp_Dir = new File ("Temp_Dir");

BufferedWriter bufferWriterTemp_DirFROM = new BufferedWriter(new FileWriter(fromTemp_Dir));
bufferWriterTemp_DirFROM.write("Temp_Dir_FROM");
bufferWriterTemp_DirFROM.close();

BufferedWriter bufferWriterTemp_DirTO = new BufferedWriter(new FileWriter(toTemp_Dir));
bufferWriterTemp_DirTO.write("Temp_Dir_TO");
bufferWriterTemp_DirTO.close();

System.out.println("fromTemp_Dir exist? "+fromTemp_Dir.exists());
System.out.println("toTemp_Dir exist? "+toTemp_Dir.exists());


toTemp_Dir.delete();
if (!fromTemp_Dir.renameTo(toTemp_Dir)){
System.out.println("rename fail 'De temporal a archivo en directorio'");
}else {
System.out.println("Rename successful 'De temporal a archivo en directorio'");
}


//TODO De archivo a temporal
//TODO from file in common folder to file in temporary folder.
File fromDir_Temp = new File ("Dir_FROM");
File toDir_Temp = File.createTempFile("Dir_Temp_TO", ".temp");

BufferedWriter bufferWriterDir_TempFROM = new BufferedWriter(new FileWriter(fromDir_Temp));
bufferWriterDir_TempFROM.write("Dir_Temp_FROM");
bufferWriterDir_TempFROM.close();

BufferedWriter bufferWriterDir_TempTO = new BufferedWriter(new FileWriter(toDir_Temp));
bufferWriterDir_TempTO.write("Dir_Temp_TO");
bufferWriterDir_TempTO.close();

toDir_Temp.delete();
if (!fromDir_Temp.renameTo(toDir_Temp)){
System.out.println("rename fail 'De archivo en directorio a temporal'");
} else{
System.out.println("rename successful 'De archivo en directorio a temporal'");
}


//TODO De temporal a temporal
//TODO from temporary folder to temporary folder
File fromTemp = File.createTempFile("archivoTempFROM_", ".temp");
File toTemp = File.createTempFile("archivoTempTO_", ".temp");

BufferedWriter bufferWriterFROMTemp = new BufferedWriter(new FileWriter(fromTemp));
bufferWriterFROMTemp.write("archivoTempFROM");
bufferWriterFROMTemp.close();

BufferedWriter bufferWriterTOTemp = new BufferedWriter(new FileWriter(toTemp));
bufferWriterTOTemp.write("archivoTempTO");
bufferWriterTOTemp.close();

toTemp.delete();
if (!fromTemp.renameTo(toTemp)){
System.out.println("rename fail 'De temporal a temporal'");
}else {
System.out.println("Rename successful 'De temporal a temporal'");
}

//TODO De archivo a archivo en directorio
//TODO from file in common directory to file in common directory
File fromDir = new File("archivoDirFROM");
File toDir = new File("archivoDirTO");

BufferedWriter bufferWriterFROMDir = new BufferedWriter(new FileWriter(fromDir));
bufferWriterFROMDir.write("archivoDirFROM");
bufferWriterFROMDir.close();

BufferedWriter bufferWriterTODir = new BufferedWriter(new FileWriter(toDir));
bufferWriterTODir.write("archivoDirTO");
bufferWriterTODir.close();

toDir.delete();
if (!fromDir.renameTo(toDir)){
System.out.println("rename fail 'De archivo a archivo en directorio'");
}else {
System.out.println("Rename successful 'De archivo a archivo en directorio'");
}

}

在我的控制台中显示

fromTemp_Dir 存在吗?是的
toTemp_Dir 存在吗?是的
重命名失败 'De temporal a archivo en directorio'
重命名失败 'De archivo en directorio a temporal'
重命名成功 'De temporal a temporal'
重命名成功 'De archivo a archivo en directorio'

这个类在一些 PC 上工作,但在其他 PC 上不工作(在 7 台 PC 上测试,5 台工作,2 台不工作),都安装了 ubuntu。

应该是权限问题,但是我已经把电脑设为管理员和root了。

我尝试使用 gksu 和 sudo,但不起作用。

有什么解决办法吗?

谢谢。

最佳答案

阅读 renameTo 文档:

Whether or not this method can move a file from one filesystem to another is platform-dependent. The return value should always be checked to make sure that the rename operation was successful

我遇到了和您一样的问题,但我必须处理大量文件,而且我需要确保事情顺利进行。解决方案是使用操作系统来做到这一点,调用 Runtime.getRuntime().exec(命令)

在命令里面我可以做一个“mv” file1 file2听起来很傻,但它确实起作用了。经常这样做可能会非常昂贵,但它没有任何大问题。

干杯,尤金。

关于java - renameTo() 在 eclipse Helios 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8616207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com