Windows中的文件路径的Windows转义序列问题
我需要使用Windows文件路径对文件执行一些操作,但我得到无效的转义序列错误。
File f = new File("C:\test");
系统只接受“\\”或“/”,但如果我从Windows复制文件路径,则为“\”。 我怎么能解决这个问题
使用File.seperator代替“\”。
File f = new File("C:"+File.seperator+"test");
File.seperator返回“\”,不会将其视为转义字符。
如果您的文件test.txt
保存在文件夹D:/ MyFloder / MyPrograms中,您可以执行以下操作
File f = new File("D:"+File.seperator+"MyFloder"+File.seperator+"MyPrograms"+File.seperator+"test.txt");
编辑
您无需担心操作系统
对于Unix: File.separator = /
对于Windows: File.separator = \
\
是Java Strings中的转义字符。 请改用\\
。
"C:\\test"
解析为String C:\test
您可以使用\\
或/
但/
更好,因为它与操作系统无关。
使用双反斜杠或单个正斜杠替换路径中的单个反斜杠以解决您的问题。
在内部,Java会将其转换为操作系统的文件分隔符
File f = new File("C:\\test");
是正确的。
您没有在此处创建路径为“C:\\ test”的文件。 您正在创建一个路径为“C:\ test”的文件。 编译程序时会发生\\ – to- \转换 – 当程序运行时,双反斜杠消失了。
String – String s = "C:\\test";
不创建带有两个反斜杠的字符串,只有一个。
您可以这样想:字符串实际上没有两个反斜杠,但您必须以这种方式编写它以将其放入代码中。
您可能想知道为什么 – 这是因为反斜杠用于在字符串中插入特殊字符。 例如,当您在字符串中键入\t
,它会插入一个选项卡。 如果要插入反斜杠,则输入t,键入\\t
。
你可以在自Windows XP以来的路径中使用’/’(如在Linux中),所以忘了\
使用java.nio.file.Path
而不是java.io
,你不会遇到转义序列字符的问题:
import java.nio.file.Path; import java.nio.file.Paths; Path path = Paths.get("C:\test");
- 如何在Eclipse中添加JBoss服务器?
- 如何为runnable jar添加jvm参数?
- 如何使用Eclipse检查调试符号状态?
- 在远程Tomcat上自动部署Java应用程序
- 将filter添加到Eclipse中的Project Explorer
- ClassNotFoundException:org.eclipse.xtext.junit_2.4.3.v201309030823找不到junit.framework.TestCase
- 如何在eclipse(part2)中配置javadb?
- 导入org.springframework无法解析
- 在Eclipse中的“Build project”上运行“mvn package”