Чтение файла по сетевому пути

У меня есть эта странная проблема, когда я использую

<code>File FileToRead = new File("\\\\MYSERVER\\MYFOLDER\\MYFOLDER\\MYPICTURE.JPG");
</code>

чтобы прочитать файл по сети, все, что я получаю, это исключение нулевого указателя. Обычно с этим работает локальный путь, но когда он находится в сети, мне просто не удается заставить его работать. Есть идеи?

PS: о, и мое сетевое подключение, кажется, работает, никаких проблем при доступе к данным в Windows Explorer ...

Больше кода:

<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));
</code>
 maerics02 мая 2012 г., 17:27
Можете ли вы опубликовать код, который на самом деле вызывает ошибку или приводит к нулевой ссылке? Строка, которую вы перечислили, никогда не должна быть нулевой на любой платформе Java.
 David W02 мая 2012 г., 17:32
Вы уверены, что ваши UNC ориентиры наshare а не в папку, например \\\\ MYSERVER \\ SHARENAME \\ FOLDER \\ FOLDER \\ MYPICTURE.JPG. Если вторая часть вашего примера выше действительно является именем папки, а не общим ресурсом, ссылка не будет разрешена.
 adarshr02 мая 2012 г., 17:27
Я предполагаю, что это как-то связано с делом. Ваш полный путь именно таким образом, во всех заглавных буквах? В Windows регистр не учитывается. Ява не должна быть.

Ответы на вопрос(1)

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

EDIT обратите внимание, что эта строка является URI! Он не может содержать пробелы, поэтому вы должны заменить их на & quot;% 20 & quot; заставить это работать.

 Sin5k403 мая 2012 г., 07:52
Попробовал и получил: javax.imageio.IIOException: Не могу прочитать входной файл! :(
 03 мая 2012 г., 15:15
Есть лиgeneratedfilename содержать какой-то символ, который должен быть закодирован? С обратной косой чертой вместо обратной косой черты это не работает?
 Sin5k403 мая 2012 г., 15:12
путь: String filepath = & quot; file: \\\\ DOKSERVICE \\ Dokumaortak \\ ProductImage \\ & quot; + generatefilename + & quot; .JPG & quot ;;
 Sin5k403 мая 2012 г., 15:19
он просто делает это: generatefilename = generatefilename.replace (& quot; / & quot ;, & quot; _ & quot;); и только что проверил его с помощью отладчика, и, кажется, он генерирует его нормально, похоже, это решает проблему.
 03 мая 2012 г., 09:47
@ Sin5k4 вы можете опубликовать путь к файлу здесь? Точный, который вы используете, если это возможно.

Ваш ответ на вопрос