我正在尝试在该目录中创建目录和csv文件。该目录已创建,但在创建文件时会产生异常 这是我的代码
File dirName = new File("C:\\Umair\\Trace Bandwidth Statistics");
if (!dirName.exists())
dirName.mkdir();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
File file = new File( dirName + "\\"+ df.format(new Date()) +"_Statistics.csv");
if ( !file.exists() )
file.createNewFile();
我得到此异常java.io.IOException:文件名,目录名或卷标语法不正确
有什么想法吗?
由于
答案 0 :(得分:6)
Windows的文件名中不允许使用字符:
,因此无法将df.format(new Date())
部分添加到文件名
以下是Windows的文件名规则:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
答案 1 :(得分:1)
Windows中不允许使用\/:*?"<>|
等字符作为文件名。剥离这些字符,然后创建文件。
答案 2 :(得分:1)
由于它是一个Windows文件系统,我假设它根据包含非法字符拒绝你的文件名。例如“:”
(另外,为了安全起见,我使用mkdirs()而不是mkdir()。还习惯使用File.separator而不是\以防你需要将你的应用程序移动到env使用/而不是)
答案 3 :(得分:0)
在Windows上,以下是保留的字符,不能在文件名中使用:
当您使用:
作为附加到文件名的日期的一部分时,因此文件未被创建。