2012-05-02 3 views
10

Ich habe dieses seltsame Problem Lesen, wenn icheine Datei über einen Netzwerkpfad

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

verwenden, um eine Datei über ein Netzwerk zu lesen, alles, was ich bekommen, ist eine Null-Zeiger-Ausnahme. Normalerweise funktioniert ein lokaler Pfad, aber wenn ich auf einem Netzwerkpfad bin, konnte ich es einfach nicht zum Laufen bringen. Irgendwelche Ideen?

PS: Ach ja, und meine Netzwerkverbindung scheinen, keine Probleme zu arbeiten, wenn Daten in Windows Explorer den Zugriff auf ...

Mehr von dem Code:

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

Ich vermute, es ist etwas mit dem Fall zu tun. Ist Ihr vollständiger Pfad genau so, in Großbuchstaben? Windows unterscheidet nicht zwischen Groß- und Kleinschreibung. Java muss nicht sein. – adarshr

+0

Können Sie den Code posten, der den Fehler tatsächlich verursacht oder zu einer Nullreferenz führt? Die Zeile, die Sie aufgelistet haben, sollte auf keiner Java-Plattform null sein. – maerics

+0

Sind Sie sicher, dass Ihre UNC-Referenz auf eine * share * verweist und nicht auf einen Ordner, zB \\\\ MYSERVER \\ SHARENAME \\ FOLDER \ FOLDER \ MYPICTURE.JPG. Wenn der zweite Teil Ihres obigen Beispiels wirklich ein Ordnername und keine Freigabe ist, wird die Referenz nicht aufgelöst. –

Antwort

6

einfach den Dateipfad als URI:

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

EDIT beachten Sie, dass diese Zeichenfolge ein URI ist! Es kann keine Leerzeichen enthalten, daher müssen Sie sie durch "% 20" ersetzen, damit es funktioniert.

+0

Versuchte es und bekam: javax.imageio.IIOException: Kann Eingabedatei nicht lesen! :( – Sin5k4

+0

@ Sin5k4 können Sie den Dateipfad hier? Die genaue, die Sie verwenden, wenn möglich. –

+0

der Pfad ist: String filepath = "Datei: \\\\ DOKSERVICE \\ Dokumaortak \\ ProductImage \\" + generatefilename + " .JPG „;? – Sin5k4

Verwandte Themen