Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование файла из сети [D6]


Helen ©   (2006-10-18 09:43:00) 

Доброго дня. Подскажите, пожалуйста, как проверить доступность расшаренного ресурса и скачать оттуда файл, не подключая шару как сетевой диск, т.е. не использую функцию WNetAddConnection2().


Чапаев   (2006-10-19 09:39:00) [1]

> С какого перепугу ?
Издержки паскалевского опыта с его IOResult и GraphResult... ;-)


Ketmar   (2006-10-19 08:15:00) [2]

>[12] Чапаев(c) 18-Oct-2006, 19:22
>А разве первый вызов GetLastError() не обнулит внутреннюю
>переменную, хранящую код ошибки?
хм. я тоже так считал. перечитал справку: нет упоминаний о таком. предупреждают только, чтобы вызывали до других функций из системных DLL. и всё.


Сергей М.   (2006-10-19 08:08:00) [3]


> Чапаев ©   (18.10.06 19:22) [12]


> разве первый вызов GetLastError() не обнулит внутреннюю
> переменную, хранящую код ошибки?


С какого перепугу ?


Чапаев   (2006-10-18 19:22:00) [4]

> Showmessage('Код причины отказа: ' + IntToStr(GetLastError)
> + ', причина отказа: ' + SysErrorMessage(GetLastError))
> ;

А разве первый вызов GetLastError() не обнулит внутреннюю переменную, хранящую код ошибки?


> NetResource.lpRemoteName:= Pchar('IPStation');

Думаю, будет быстрей, если задать IP-адрес.


Сергей М.   (2006-10-18 11:21:00) [5]

Нет, я имею ввиду сетевые настройки ОС


Helen   (2006-10-18 11:00:00) [6]

Вы имеете в виду
NetResource.dwType:= RESOURCETYPE_DISK;
       NetResource.lpLocalName:= nil;
       NetResource.lpRemoteName:= Pchar('IPStation');
       NetResource.lpProvider   := '';


Сергей М.   (2006-10-18 10:57:00) [7]

значит, что-то не в порядке с сетевыми настройками


Helen   (2006-10-18 10:52:00) [8]

кажется, что много времени уходит на подключение.


Сергей М.   (2006-10-18 10:50:00) [9]

А чем, собссно, WNetAddConnection2 не угодила ?


Helen   (2006-10-18 10:47:00) [10]

а как подключиться с определенным логином и паролем?


Сергей М.   (2006-10-18 10:34:00) [11]

Код отказа легко выяснить, попытавшись подключиться к заведомо недоступному ресурсу

if not CopyFile(...) then
 Showmessage('Код причины отказа: ' + IntToStr(GetLastError) + ', причина отказа: ' + SysErrorMessage(GetLastError));

или

var
hFile: THandle;
..

hFile := CreateFile(...);
if hFile = 0 then
 Showmessage('Код причины отказа: ' + IntToStr(GetLastError) + ', причина отказа: ' + SysErrorMessage(GetLastError));


Helen   (2006-10-18 10:24:00) [12]

А полробнее про коды не расскажите?


Сергей М.   (2006-10-18 10:07:00) [13]


> как быть с доступностью


Ф-ции CreateFile и CopyFile вернут соотв.код отказа, если ресурс по тем или иным причинам не доступен


Helen   (2006-10-18 09:59:00) [14]

А как быть с доступностью. Да, ресурс расшарен не для всех пользователей, т.е. идти к нему надо с определенным логином и паролем


Сергей М.   (2006-10-18 09:46:00) [15]

См. CreateFile+ReadFile+WriteFile, CopyFile


Наверх

Титульная страница Поиск, карта сайта Написать письмо