我试图使用以下代码复制一个文件:
File targetFile = new File(targetPath + File.separator + filename);
...
targetFile.createNewFile();
fileInputStream = new FileInputStream(fileToCopy);
fileOutputStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[64*1024];
int i = 0;
while((i = fileInputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer,i);
}
对于某些用户,targetFile.createNewFile导致此异常:
java.io.IOException: The filename,directory name,or volume label Syntax is incorrect
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:850)
文件名和目录名称似乎是正确的.在执行复制代码之前,目录targetPath甚至被检查存在,并且文件名如下所示:AB_timestamp.xml
用户对targetPath具有写入权限,可以使用操作系统复制文件而不会出现问题.
由于我无法访问机器,所以发生这种情况,并且无法在自己的机器上重现问题,我转向您提示此异常的原因.