![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Dweep |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 1.11.2005 Репутация: нет Всего: нет |
Как посмотреть список росшареных ресурсов на компе с произвольным айпишником в сети. Я использую следующий код:
ShellFolder folder = ShellFolder.getShellFolder(new File("c:/")); while (folder.getParentFile() != null) folder = (sun.awt.shell.ShellFolder)folder.getParentFile(); Потом получая масив файлов, и приводя их к типу ShellFolder получаю сылку на сеть, робочие групы, компьютеры, ресурсы на компьютерах. Проблема в том, что этот способ работает только если мой виндовс(XP) может увидеть эти компьютеры. Обычно (у нас в групе около 200 компов) отображается только несколько машин, но на любой комп без проблем можна зайти набрав \\name_comp или \\IP Это сообщение отредактировал(а) Dweep - 4.11.2005, 22:59 |
|||
|
||||
| pvo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.10.2005 Где: Мск Репутация: нет Всего: 7 |
ответил тебе в соседнем треде - посмотри в сторону jcifs.org
|
|||
|
||||
| Dweep |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 1.11.2005 Репутация: нет Всего: нет |
Клас: http://jcifs.samba.org. меня приятно удивил, я уже почти был уверен что java не умеет определять список шар по айпишнику. Но все же есть проблема: есть несколько компьютеров (примерно 5%), которые имеют шары, связь с ними сравнительно быстрая, но SmbFile[] st = f.listFiles(); - выдает jcifs.smb.SmbException у SmbFile есть метод setConnectTimeout(по умолчанию 0), Exception выкидывает независимо от его значения. Поэтому у меня возникло 2 вопроса: 1. Можно ли обойти это исключение, т.е. увидеть ресурсы на этих компах 2. Скиньте ссылку на ОpenSourse class похожий по функциональности. |
|||
|
||||
| pvo |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.10.2005 Где: Мск Репутация: нет Всего: 7 |
Насчет ошибки: 1. кинь сюда стектрейс и фрагмент кода, в котором он возникает. 2. Отличаются ли чем-нить машины, при обращении к которым возникает ошибка, от остальных? Какая на них ос, например. Нет ли проблем при обращении к этим машинам по windows сети? М.б. на них расшарены ресурсы с русскими именами, а на остальных - нет ... и т.п. 3. У проекта jcifs есть mail list. По крайней мере года полтора назад он был вполне живой и народ там активно помогал с устранением ошибок в jcifs. 4. Еще можно попробовать подключать другие версии этой библиотеки. 5. Возможно, ошибку можно будет обойти при помощи изменения настроек jcifs.
Во-первых это не класс, а пакет (продукт/проект/библиотека...) Во-вторых, из того, что мне встречалось, jcifs был самым работоспособным. В-третьих, увы, что-то сейчас не могу найти ссылок на другие проекты. |
||||
|
|||||
| pvo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.10.2005 Где: Мск Репутация: нет Всего: 7 |
||||
|
||||
| Dweep |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 1.11.2005 Репутация: нет Всего: нет |
Мой частично работающий код выглядит так:
При i=18 выдает ошибку. Этот компьютер воткнутый в один со мной свич, то есть перебоев с сетью быть не должно. На нем открыты ресурсы через file i ftp, правда там установлено большое количество разного ПО(Apache 2.0, IIS 6.0, MySQL 4.1, VisNetic FtpServer, MS SQL 2000 и т.д.), еще стоит ограничение скорости на шары 500кбайт/с. Такую же ошибку выдает на еще как минимум одном компьютере.
Выскочило еще 2 проблемки, допустим на компе открыты
Програма Выдает:
То есть итого 4 проблемы: 1. На некоторых компах програма не видит ресурсов вообще 2. проблема с русской кодировеой в шарах (козаки/ -----> Є®§ ЄЁ/) (вложеные папки видит нормально) 3. Некоторые папки не замечает: students photos/ и Ocean_Elsy_Gloria_1/ 4. У меня вверсия jcifs_1.2.6, где можно скачать более продвинутую? |
||||||||
|
|||||||||
| pvo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.10.2005 Где: Мск Репутация: нет Всего: 7 |
1. Русские имена папок начинаю показываться корректно при указании jcifs.encoding=Cp866.
2. Насчет длинных имен share - почитай тут и тут. Я чуть посмотрел и обнаружил, что это well-known bug Для того, чтобы получать длинные имена share, нужно использовать RPC, который вроде как есть, но не интегрирован с jcifs. Если найдешь решение проблемы, свистни, плз - ибо тоже интересно. 3.С тем, что на некоторых компьютерах совсем не видит ресурсов не столкнулся. Может быть из-за того, что перед выполнением запроса вхожу в домен. 4. Насчет версии - насколько я понял, 1.2.6 - последняя версия, а public cvs or svn нет |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
С длинными именами я боролся таким способом:
smbF[] - масив полученых шар, с фильтром пропускать только директории. ShellFolder - import sun.awt.shell.ShellFolder; file[] - новый масив порлученых шар с длинными а также рускими именами.
Очевидно, что если на компе нет папок с короткими именами то так сделать не получится. Если все папки на руском, то проблема с кодировкой остается. Я не придумал ничего лучшего чем менять "©жгЄҐЈий§екдлў Їа®«¤¦нпзб¬ЁвмЎо‰–“Љ…?ѓ?™‡•љ”›‚Ђ??Ћ‹„†?џ—‘Њ?’њ?ћ" на "йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ" Как указать кодировку, куда ее вписывать? |
|||
|
||||
| Lеstat |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 28.12.2005 Где: Москва Репутация: нет Всего: нет |
а вот у меня проблемка
на компе открыта папка Mus если я пишу
все нормально... получаю папки и файлы в папке mus, но если я пытаюсь получить что в корне лежит
то SnbException jcifs.smb.SmbException: 5 выдает не пойму в чем проблема |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |