C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 Здравствуйте, гость ( Вход | Регистрация )   Скачать форум | Поиск по Форуму | Участники | Помощь
 Поиск по:   сайтy   
   архиву форума   
  ОтветитьНовая темаНовый опрос
Как проверить доступен ли сетевой диск?
« предыдущая тема | следующая тема » Подписаться на тему | Отправить тему на E-mail | Распечатать тему
maripossa
Отправлено: 14.02.2007, 22:07 Цитировать


Ученик-кочегар


Группа: Участник
Сообщений: 8
Пользователь № 1419
Регистрация: 10.12.05



У меня есть два компа, соединенные между собой через сетевые карты (локальная сеть). Копирую (из своей программы) с локального диска 1-го компа (D:\) на сетевой (F:\ - который, соответственно является расшаренной папкой на 2-м компе). Как проверить доступность диска F:\, например если выдернуть шнур из сетевой карты, или на 2-м компе закрыли доступ к папке. Мне это нужно чтобы в данном случае прекратилось копирование и приложение заклылось. Процедура DirectoryExists в данном случае не работает.
 
Послать сообщение E-mail адрес  Top
AVC
Отправлено: 15.02.2007, 10:17 Цитировать


Ветеран


Группа: Модератор
Сообщений: 1583
Пользователь № 655
Регистрация: 19.05.04



Анализировать код ошибки.
Чем копируется?

PS. При выдергивани шнура или другом прекращении доступа копирование прекратится не зависимо от ваших действий. biggrin.gif
 
Послать сообщение E-mail адрес ICQ  Top
maripossa
Отправлено: 15.02.2007, 21:53 Цитировать


Ученик-кочегар


Группа: Участник
Сообщений: 8
Пользователь № 1419
Регистрация: 10.12.05



Немного не точно я выразил свой вопрос. Файлы не копируются, а переносятся функцией int MoveFileA(*ExistingFileName,*NewFileName) и все это происходит в таймере по-мере поступления файлов на 1-й комп. И как в данном случае пользоваться возвращаемым значением или кодом ошибки? Да, я заметил, что при потере связи ничего не происходит, файлы не переносятся, но как это отследить? Как мне узнать что доступа нет?

Отредактировано maripossa - 15.02.2007, 22:29
 
Послать сообщение E-mail адрес  Top
AVC
Отправлено: 16.02.2007, 10:16 Цитировать


Ветеран


Группа: Модератор
Сообщений: 1583
Пользователь № 655
Регистрация: 19.05.04



SDK говорит
QUOTE

MoveFile
Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

 
Послать сообщение E-mail адрес ICQ  Top
Termi_uc
Отправлено: 16.02.2007, 20:46 Цитировать


Дежурный стрелочник


Группа: Участник
Сообщений: 61
Пользователь № 4206
Регистрация: 09.02.07



QUOTE (maripossa @ 14.02.2007, 22:07)
Копирую (из своей программы) с локального диска 1-го компа (D:\)  на сетевой (F:\)

Если тебе надо всего-то узнать доступен F или нет, воспользуйся след. простой функцией:
CODE
DWORD mask;
char * letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

mask = GetLogicalDrives();

for(int i(1), j(0); j < 27; i *= 2, j++)
 if(mask & i)
  Memo1->Lines->Add(letter[j]);

Она выдаёт список доступных логических дисков.

--------------------
- Где точка самореализации, мысль ясна, отвечайте. Но по очереди и незабывай собачку п.
- Вечность вычисляет массивы и информация кодируется в плоти, как может одна капелька разрушеть все, где д., Старина д.?
 
Послать сообщение E-mail адрес  Top
4 ответов с: 14.02.2007, 22:07 Подписаться на тему | Отправить тему на E-mail | Распечатать тему

Back to Вопросы программирования в C++Builder
ОтветитьНовая темаНовый опрос