2015-08-16 74 views
1

我想要file = new file (location)而文件的位置是绝对路径与somethign是这样的:\\test\hold\REPO/TEST/Letter/123.pdf 我收到文件没有发现异常,而文件在这里的路径。会发生什么问题?我可以有正向和反向斜线吗?FileNotFoundException当试图打开文件

+0

尝试使用File类的列表方法列出路径中的所有文件,以检查文件是否实际存在于路径中?如果文件存在,那么请查看文件名的大小写,甚至是扩展名?问题是程序没有采用正确的路径,或者文件名与代码中给出的内容不匹配。 –

+0

为什么斜线不同? –

+0

请查看:'File.separator'变量。这个答案也许可以帮助你:http://stackoverflow.com/questions/5971964/file-separator-or-file-pathseparator – Gyan

回答

-1

你可以使用: - InputStream input = new URL("\\test\hold\REPO/TEST/Letter/123.pdf").openStream();

File file = new File(location); 

其中location=\\test\hold\REPO/TEST/Letter/123.pdf;并检查使用SOP声明URL是否为通话正常与否。希望它能帮助你更好地解决问题

0

String separator = System.getProperty(“file.separator”); 所以位置可以改写为 location = separator +“test”+ separator +“hold”+ separator +“REPO”+ separator“TEST”+ separator +“Letter”+ separator +“123.pdf”; 在这种情况下,不需要考虑底层操作系统

0

您需要在字符串文字中使用两个斜杠来表示文件名中的一个斜杠。尝试

"\\\\test\\hold\\REPO/TEST/Letter/123.pdf" 

或更好

"//test/hold/REPO/TEST/Letter/123.pdf" 

从未有一个需要在Java中的文件名使用反斜杠。

0

尝试在文件名周围添加引号。

0

你可以编写你的代码而没有单一的反斜杠。如果你想使用反斜线,使用\\而不是\。如果你把它放在字符串文字中,单个反斜杠会产生一个问题。所以你可以写你用多种方式编码以避免你的例外。

1) File f=new File("\\test/hold/REPO/TEST/Letter/123.pdf"); 
2) File f=new File("\\test\\hold\\REPO/TEST/Letter/123.pdf"); 
3) File f=new File("\\test\\hold\\REPO\\TEST\\Letter\\123.pdf"); 
4) File f=new File("/test/hold/REPO/TEST/Letter/123.pdf"); 
相关问题