2012-05-02 187 views
10

我有这个奇怪的问题,当我使用读取文件在网络路径

File FileToRead = new File("\\\\MYSERVER\\MYFOLDER\\MYFOLDER\\MYPICTURE.JPG"); 

在网络上读取文件,我得到的是一个空指针异常。通常情况下,本地路径与此协同工作,但在网络路径上时,我无法实现其工作。有任何想法吗?

PS:噢,我的网络连接似乎工作,访问在Windows资源管理器数据时,没有任何问题......

更多的代码:

File FileToRead = new File("file://DOKSERVICE/Somefolder/ProductImage/01001.JPG"); 
//File FileToRead = new File("c:\\dog.jpg"); local test 
BufferedImage image = ImageIO.read(FileToRead); 
BufferedImage resizedimage = new BufferedImage(260, 260,BufferedImage.TYPE_INT_RGB); 
Graphics2D g = resizedimage.createGraphics(); 
g.drawImage(image, 0, 0, 260, 260, null); 
g.dispose(); 
picture.setIcon(new ImageIcon(image)); 
+0

我猜这是与案件有关。完全是这样,全部大写吗? Windows不区分大小写。 Java不需要。 – adarshr

+0

您可以发布实际导致错误的结果或空结论吗?在任何Java平台上,您列出的行不应该为空。 – maerics

+0

您确定您的UNC参考指向* share *而不是文件夹,例如\\\\ MYSERVER \\ SHARENAME \\ FOLDER \\ FOLDER \\ MYPICTURE.JPG。如果上述示例的第二部分确实是文件夹名称,而不是共享,则引用无法解析。 –

回答

6

只要指定为URI中的文件路径:

File FileToRead = new File(new URI("file://MYSERVER/MYFOLDER/MYFOLDER/MYPICTURE.JPG")); 

编辑注意,字符串是一个URI!它不能包含空格,所以你必须用“%20”来替换它们才能使它工作。

+0

尝试过并得到:javax.imageio.IIOException:无法读取输入文件! :( – Sin5k4

+0

@ Sin5k4你可以在这里发布文件路径吗?如果可能的话,你使用的确切文件路径是 –

+0

,路径是:String filepath =“file:\\\\ DOKSERVICE \\ Dokumaortak \\ ProductImage \\”+ generatefilename +“ .JPG“;? – Sin5k4