java - 如何在java中以通用方式重命名文件?

标签 java windows escaping rename

我有两个文件对象oldFilenewFile,我想交换相应的文件名。因此,我首先将 oldFile 重命名为 tmpFile 名称。我获取 oldFile 的绝对路径并为其附加“.bak”:

String tmpFile = oldFile.getAbsolutePath().toString()+".bak";
oldFile.renameTo(new File(tmpFile));

问题在于 tmpFile 包含路径的原始字符串,而 File 类的构造函数将 '\' 视为转义符。因此 tmpFile 可能是 "D:\oldfile .java.bak”,但是构造函数需要的是

new File("D:\\oldfile.java.bak");

我该如何处理?

最佳答案

File 的构造函数不将 \ 视为转义。您需要在字符串文字中使用\转义\。字符串文字 "\\" 包含单个字符:'\'

String path = "D:\\oldFile";
System.out.println(path); // prints D:\oldFile
File f = new File(path);
System.out.println(f.getAbsolutePath()); // prints D:\oldFile

关于java - 如何在java中以通用方式重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10451900/

相关文章:

java - 如何在 Maven Mojo 中使用整个插件配置

java.net.MalformedURLException java.net.URL.<init>(来源未知)

windows - PE 文件中的 DOS stub

windows - 适用于 Windows 的 Node.js x86 和 x64 安装程序有什么区别?

php - 在 mysql - php 中插入反斜杠

java - JAVA 正则表达式中的正斜杠

java - 我们可以向后拆分 Java 字符串吗?

java - 需要 key.equals() java 的替代方案

windows - 在 windows 上为 terraform 预先提交

Java - 转义一个字符