Автор | Сообщение |
|
| |
Пост N: 3118
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.04.13 10:20. Заголовок: Isdirectory
? isdirectory("\\127.0.0.1\Lanres\") .F. ? hb_direxists("\\127.0.0.1\Lanres\") .T. Похоже isdirectory снова перестала работать с UNC путями ЗЫ Harbour 3.2
|
|
|
Ответов - 14
[только новые]
|
|
|
| постоянный участник
|
Пост N: 884
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.04.13 10:31. Заголовок: Вот что-то про это: ..
Вот что-то про это: 2010-06-15 13:38 UTC+0200 Viktor Szakats (harbour syenar.net) * contrib/xhb/xhbfs.c ! Fixed ISDIRECTORY() to work like originally intended. This effectively reverts breakage caused by this change: 2009-07-06 10:06 UTC+0100 Miguel Angel Marchuet <miguelangel@marchuet.net> * source/rtl/file.c * Changed IsDirectory to fix IsDirectory( "\\machine\c" ) style call under windows platforms. BTW, in Harbour to achieve above effect, you can use native HB_DIREXISTS( "\\machine\c" ) function call.
|
|
|
|
| |
Пост N: 4168
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.08.14 13:58. Заголовок: Dima пишет: ? hb_di..
Dima пишет: цитата: | ? hb_direxists("\\127.0.0.1\Lanres\") |
| что то долго срабатывает первый раз если такого пути нет. чем можно заменить hb_direxists ?
|
|
|
|
| постоянный участник
|
Пост N: 3578
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.08.14 14:44. Заголовок: Я тоже с этим мучил..
Я тоже с этим мучился.... Сделал так: nI := DIRCHANGE(cPath) IF nI == 0 ELSEIF nI == -2 cMsg := "Ошибка ! ("+LTRIM(STR(nI))+") ; Файл не найден ! ;"+; "Путь к серверу = "+cPathServer+" ? ;" cMsg := HB_OEMTOANSI(cMsg) wvw_messagebox(0, cMsg, cTitle, MB_OK+MB_ICONHAND) QUIT ELSEIF nI == -3 cMsg := "Ошибка ! ("+LTRIM(STR(nI))+") ; Путь доступа не найден ! ;"+; "Путь к серверу = "+cPathServer+" ? ;" cMsg := ATREPL(";",cMsg,CHR(13)+CHR(10)) cMsg := HB_OEMTOANSI(cMsg) wvw_messagebox(0, cMsg, cTitle, MB_OK+MB_ICONHAND) QUIT ELSEIF nI == -5 cMsg := "Ошибка ! ("+LTRIM(STR(nI))+") ; Отказ доступа в сети ! ;"+; "Путь к серверу = "+cPathServer+" ? ;" cMsg := ATREPL(";",cMsg,CHR(13)+CHR(10)) cMsg := HB_OEMTOANSI(cMsg) wvw_messagebox(0, cMsg, cTitle, MB_OK+MB_ICONHAND) QUIT ELSE cMsg := "Неизвестная ошибка ! ("+LTRIM(STR(nI))+")"+CRLF+; "Путь к серверу = "+cPathServer+" ? "+CRLF cMsg := ATREPL(";",cMsg,CHR(13)+CHR(10)) cMsg := HB_OEMTOANSI(cMsg) wvw_messagebox(0, cMsg, cTitle, MB_OK+MB_ICONHAND) QUIT ENDIF
|
|
|
|
| |
Пост N: 4367
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.12.14 18:12. Заголовок: Andrey пишет: nI :=..
Andrey пишет: Эта функция ни чуть не быстрее HB_DIREXISTS , вот если б можно было в нее передать нужный таймаут скажем в 1 сек. Да пичалька с этим тормозком....
|
|
|
|
| |
Пост N: 4373
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.12.14 16:47. Заголовок: Dima пишет: Да пича..
Dima пишет: цитата: | Да пичалька с этим тормозком.... |
| Проблему решил. Дело в том что сетевой ресурс который проверяю является так же домашней папкой на работающем там же FTP сервере. Поэтому HB_DIREXISTS заменил на проверку доступности FTP сервера по LAN адресу с задержкой 300 , работает моментально. PS Пытался сделать свой Hb_PING для сетки с помощью hb_inetConnectIP , но вероятно я не до конца понимаю как она работает. При указании не существующего IP адреса хэндл все равно создается , да и hb_inetErrorCode говорит что все путем.
|
|
|
|
| постоянный участник
|
Пост N: 1011
Зарегистрирован: 27.01.07
|
|
Отправлено: 20.12.14 17:30. Заголовок: Дима, надо, видимо, ..
|
|
|
|
| |
Пост N: 4374
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.12.14 17:43. Заголовок: Сделал вот такой тес..
Сделал вот такой тест. Proc main local hSocket if hb_inetInit() hSocket := hb_inetCreate(100) ? hb_inetConnectIP( "127.0.0.1",21,hSocket ) ? hb_inetErrorCode( hSocket ) // -1 hb_inetCleanup() endif return Меня терзают смутные сомнения насчет номера порта , какой порт надо указать если проверку делаю в локальной сети ?
|
|
|
|
| |
Пост N: 4375
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.12.14 18:14. Заголовок: А вот так работает h..
А вот так работает hSocket := hb_inetCreate(1000) // таймаут надо увеличить ? hb_inetConnectIP( "127.0.0.1",13,hSocket ) // с 13 портом пашет однако и с 7 13/TCP,UDP DAYTIME — предназначен для тестирования связи путём получения от сервера текущих даты и времени в текстовом виде 7/TCP,UDP ECHO — предназначен для тестирования связи путём отправки данных на сервер и получения от него их же в неизменном виде
|
|
|
|
| постоянный участник
|
Пост N: 3872
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.12.14 21:42. Заголовок: Dima пишет: А вот т..
Dima пишет: цитата: | А вот так работает hSocket := hb_inetCreate(1000) // таймаут надо увеличить ? hb_inetConnectIP( "127.0.0.1",13,hSocket ) // с 13 портом пашет однако и с 7 |
| А как тогда проверить работоспособность сервера в сети - допустим по имени SERVERWIN2000 ?
|
|
|
|
| постоянный участник
|
Пост N: 1012
Зарегистрирован: 27.01.07
|
|
Отправлено: 20.12.14 22:15. Заголовок: Dima пишет: какой п..
Dima пишет: цитата: | какой порт надо указать если проверку делаю в локальной сети |
| Не важно, локальная сеть или глобальная. Номер порта определятся сервисом (программой) на удаленном сервере, к которому хочешь подключиться.
|
|
|
|
| |
Пост N: 4377
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.12.14 19:37. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как тогда проверить работоспособность сервера в сети - допустим по имени SERVERWIN2000 ? |
| По имени hb_inetConnect()
|
|
|
|
|
| |
Пост N: 4378
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.12.14 20:13. Заголовок: PSP пишет: Не важно..
PSP пишет: цитата: | Не важно, локальная сеть или глобальная. Номер порта определятся сервисом (программой) на удаленном сервере, к которому хочешь подключиться. |
| Ну как бы на сервере нет Harbour сервера(проги) , по любому порту не проверишь (уже игрался) , только по определенным о которых писал выше ну или по 21 если там поднят FTP сервер (на 21 порту).
|
|
|
|
| постоянный участник
|
Пост N: 1013
Зарегистрирован: 27.01.07
|
|
Отправлено: 22.12.14 22:33. Заголовок: Dima пишет: Ну как ..
Dima пишет: цитата: | Ну как бы на сервере нет Harbour сервера(проги) , по любому порту не проверишь (уже игрался) , только по определенным о которых писал выше ну или по 21 если там поднят FTP сервер (на 21 порту). |
| 7-ой порт (TCP/UDP) как раз для echo. Его и используй.
|
|
|
|
| |
Пост N: 4422
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.01.15 18:51. Заголовок: Что касается проверк..
Что касается проверки наличия директории , то в начале (что бы не было тормозов) проверяем PING c помощью hb_inetConnect (hb_inetConnectIP) (я ставил таймаут 2000) и если результат положительный , только после этого делаем проверку с помощью hb_direxists.
|
|
|
|