2012-05-02 126 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