我可以使用任何实用程序从Java.io强制重命名文件吗?
我知道 Java 7 具有这些功能,但我不能使用它......
如果我做
File tempFile = File.createTempFile();
tempFile.renameTo(newfile)
如果 newfile 存在,那么它会失败。
如何进行强制重命名?
我可以使用任何实用程序从Java.io强制重命名文件吗?
我知道 Java 7 具有这些功能,但我不能使用它......
如果我做
File tempFile = File.createTempFile();
tempFile.renameTo(newfile)
如果 newfile 存在,那么它会失败。
如何进行强制重命名?
我认为您必须手动进行 - 这意味着您必须检查目标名称是否已经作为文件存在并在进行真正的重命名之前将其删除。
您可以编写一个例程来执行此操作:
public void forceRename(File source, File target) throws IOException
{
if (target.exists()) target.delete();
source.renameTo(target)
}
这种方法的缺点是,在删除和重命名另一个进程之前,可能会创建一个具有该名称的新文件。
因此,另一种可能性是将源文件的内容复制到目标文件中,然后删除源文件。但这会消耗更多资源(取决于文件的大小),并且只有在可能重新创建已删除文件的情况下才应该这样做。
你总是可以先删除newFile
:
File newFile = ...
File file = ...
newFile.delete();
file.renameTo(newFile);
每当打开文件夹时,我都无法重命名。在 Java 中设置以下属性解决了我的问题:
dirToRename.setExecutable(true);