我尝试使用下面的代码复制文件:哪些java.io.IOException的可能原因:“文件名,目录名或卷标语法不正确”
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, 0, 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
,可以复制该文件,而无需使用操作系统的问题。
由于我没有访问此机还发生在,不能重现我为你们的提示在此例外的原因,我自己的机器上的问题。
API实际上表示,如果文件已经存在但不会抛出IOException,但在此情况下仅返回false。 – Turismo 2008-09-25 09:51:15