我得到 java.io.IOException:文件名,目錄名或卷標語法不正確 我看不到爲什麼。Java IOException,文件路徑奇怪
如果我直接用字符串嘗試我的代碼,它可以工作(文件夾存在,權限ok等) 當我嘗試從數組中構建字符串時,它失敗,出現上述異常。 下面的代碼,與我已經試過了失敗,什麼工程,以及中的println輸出就是註釋行:
// //////////////////////////////////////////////////////////////////
// Create a file chooser and select a directory
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setAcceptAllFileFilterUsed(false);
int rVal = fc.showOpenDialog(MyApp.this);
if (rVal == JFileChooser.APPROVE_OPTION) {
dlDirectory = fc.getSelectedFile().toString() + "\\";
System.out.println("Selected Directory: " + dlDirectory);
} else {
System.out.println("No Selection");
}
...
...(I create a string array of file names here)
...
for (int i = 0; i < filesToRetrieve.length; i++) {
//put together the directory and file name
String dlFileName = (dlDirectory + filesToRetrieve[i]);
try {
System.out.println(dlDirectory); // output: C:\Users\michael\Documents\tmp\ (as expected)
System.out.println(filesToRetrieve[i]); // output: nameoffile.txt (as expected)
System.out.println(dlFileName); // output: C:\Users\michael\Documents\tmp\nameoffile.txt (as expected)
File myFile = new File(dlFileName); //<--this does not work -- java.io.IOException: The filename, directory name, or volume label syntax is incorrect
//File myFile = new File(dlDirectory + filesToRetrieve[i]); //<--this does not work either
//File myFile = new File(dlDirectory + "nameoffile.txt"); // <--this does work !?!?
if(!myFile.exists()) {
System.out.println("file does not exist");
myFile.createNewFile();
}
} catch (Exception e) {
System.err
.println("failed");
System.err.println(e);
}
}
有人能看到爲什麼會這樣? 謝謝。
不應該在目錄和filesToRetrieve之間使用\\而不是單個\? – vikiiii
你應該使用'\\\'而不是'\\' – Mob
@Mob,是的,dlFileName是dl目錄中的文件choser和+ \\ + filename,它只是用\ –