我嘗試使用下面的代碼複製文件:哪些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