2010-02-25 66 views
0

我想引用我的計算機上的位置,但Java告訴我,我有錯誤的語法。文件引用,什麼是正確的語法

此行是否正確?

File newlyUploadedFile = new File("D:\\" + fileName);

的東西是文件被正確上傳到我想要去的位置,但我得到的錯誤:

java.io.IOException: The filename, directory name, or volume label syntax is incorrect

+0

你剛纔看到的\單斜槓本來就是一個雙斜槓\ \抱歉。 – Ankur 2010-02-25 03:57:04

+1

您需要發佈整個功能。現在,我們無法知道代碼出錯的地方。 – futureelite7 2010-02-25 04:48:03

回答

6

讓您遠離反斜槓Java中的字符串,始終。

File newlyUploadedFile = new File("D:\\" + fileName); 

IOException是由系統未找到您在filename中指定的文件引起的。嘗試加入

newlyUploadedFile.exists(); 

並查看它返回的結果。如果你的路徑返回false,那麼你的文件名有誤。

+0

我不認爲這是問題所在。在String文本中缺少轉義會導致Java編譯錯誤而不是IOException。 – 2010-02-25 03:02:05

+0

是的,我也注意到了。但是,缺少斜線肯定會導致路徑問題。 – futureelite7 2010-02-25 03:25:52

+0

@ futureelite7 - 您正在做出假設。我們不知道'fileName'實際上包含了什麼。如果它(已經)以'\\'開頭呢? – 2010-02-25 03:38:48

3

首先,問題中提供的代碼將不會編譯。但是由於你看到了一個IOException,你顯然正在運行不同的代碼。

爲了得到一個IOException,抱怨路徑名語法,實際上路徑名一定有問題。 "D:\\" + fileName實際上給你什麼?添加致電System.err.println(...),看看它是什麼。

+0

謝謝我會嘗試...但爲什麼不編譯 - 我試圖簡短,並沒有給出所有的代碼。但我不明白爲什麼我給出的位不會編譯。 – Ankur 2010-02-25 03:55:37

+0

@Ankur - 現在你已經修復了它將編譯的問題的文本:-) – 2010-02-25 04:28:26

1

注:

  1. 該異常文本從Windows操作系統中來,而不是從Java。

  2. 永遠不需要在Java文件名中使用反斜槓。至少在13年來我從未遇到過。

+0

我很想知道爲什麼downvote。這裏沒有事實錯誤。 – EJP 2010-02-25 09:39:48

+0

反對錶決。這確實是完全有效的。錯誤來自底層文件系統,正斜槓在Windows中一直很好。 – BalusC 2010-02-25 11:45:24