2012-05-02 23 views
10

mam ten dziwny problem, gdy używamOdczyt pliku w ścieżce sieciowej

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

odczytać plik w sieci, wszystko mogę to wyjątek null pointer. Zwykle działa z tym ścieżka lokalna, ale gdy znajduję się na ścieżce sieciowej, po prostu nie udało mi się jej uruchomić. Jakieś pomysły?

PS: No i moje połączenie sieci wydaje się działać, bez problemów, gdy pozyskuje dane Eksploratora Windows ...

Więcej o kodzie:

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

Zgaduję, że to ma coś wspólnego ze sprawą. Czy twoja pełna ścieżka jest dokładnie taka, we wszystkich wersjach? W systemie Windows nie ma znaczenia wielkość liter. Java nie musi być. – adarshr

+0

Czy możesz opublikować kod, który rzeczywiście powoduje błąd lub powoduje odniesienie zerowe? Wyszczególniona linia nigdy nie powinna mieć wartości NULL na żadnej platformie Java. – maerics

+0

Czy jesteś pewien, że Twoje punkty odniesienia UNC wskazują na * udział *, a nie na folder, np. \\\\ MYSERVER \\ SHARENAME \\ FOLDER \\ FOLDER \\ MYPICTURE.JPG. Jeśli druga część twojego przykładu rzeczywiście jest nazwą folderu, a nie udziałem, referencja nie zostanie rozwiązana. –

Odpowiedz

6

wystarczy określić ścieżkę pliku jako URI:

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

EDIT uwaga, że ​​ciąg jest URI! Nie może zawierać spacji, więc musisz zastąpić je "% 20", aby działało.

+0

Wypróbowałem i otrzymałem: javax.imageio.IIOException: Nie można odczytać pliku wejściowego! :( – Sin5k4

+0

@ Sin5k4 Czy możesz umieścić tutaj ścieżkę do pliku? Dokładnie tą, której używasz, jeśli to możliwe. –

+0

ścieżka to: String filepath = "file: \\\\ DOKSERVICE \\ Dokumaortak \\ ProductImage \\" + generatefilename + " .JPG „;? – Sin5k4