windows Java文件。getCanonicalFile()无法处理冒号“:”
我正在尝试创建一些带有日期的数据文件;Windows上文件名中的时间。文件名类似于“C:/data-2018-11-07 11:02:42.log”。然而,当我尝试以下代码时:
File file = new File("C:/data-2018-11-07 11:02:42.log").getCanonicalFile();
有一个例外:
java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
at java.io.File.getCanonicalPath(File.java:618)
at java.io.File.getCanonicalFile(File.java:643)
如何删除此异常?我试着把“:”换成“x”,效果很好。我能做些什么来使用“:”
我用的是Java8
# 1 楼答案
最后,我找到了原因。原因是Windows不允许在文件路径中使用“:”。我用了How to get a file in Windows with a colon in the filename?中描述的类似的,一切都很好