我有两个文件对象oldFile
和newFile
,我想交换相应的文件名。因此,我首先将 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/