2010-02-25 65 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

相关问题