Проверете за наличността на мрежово устройство

Проверете за наличността на мрежово устройство

Трябва да се провери - дали наличната мрежовото устройство за четене / запис / изтриване от компютъра (на потребителя) под Win98. Този сървър работи с Novell 5.0
В момента това е само опит да се създаде - изтриване празен файл в блока опит. ОСВЕН.
Може би има по-елегантни методи?

Е, това е теоретично възможно да се провери с потребителските права. Novell Client позволява да гледате за текущи потребителските права за всички обекти. Остава да се намери описание на API.

Теоретично е възможно, но това не дава нищо, който искате да проверите, не е прав, и наличност, mozhent файл да се отвори, като монопол и ще nezhostupnym, въпреки че правото да се прочете там.

> Анатолий Podgoretsky
И ако прочетете отново внимателно въпроса?
И тук някой файл?

Ами, знаете ли! Какво въпрос - отговор.
Малко вероятно е, че разработчиците са разчитали на почистващи препарати с метли.

Въпрос: Мисля, че това е уникален "Ако на мрежово устройство е на разположение,.". За не бяха споменати правата на потребителите тук.

> Това е малко вероятно, че разработчиците са разчитали на почистващи препарати с метли.
И затова често трябва да деактивирате AutoSave в Word-е до размера на документа повече. Това, приятелю, някой като.

По-къс. не методи. Добре ние имаме това, което имаме

С риск да влязат в "долнопробен":
Разбира се, въпросът за "дали мрежовото устройство е достъпно" е недвусмислена.
Но не и извън контекста въпрос е "на разположение, ако мрежовото устройство за четене / запис / изтриване" освен без никакви асоциации на потребителите за правата, аз поне не се обади.

Като цяло, можете да проверите наличността топки, озовал attrubuty файл (не искам да кажа "скрит" или "архив")

И какви проблеми:

1. Създайте файл. // проверка за наличността.
1.1. Ако допуснете грешка в т.1 - опит за отваряне на съществуващ файл
2. писане в него. // проверка, за да напише
3. Ние се чете от него. // прочетете проверка
4. Изтриване на файла. // проверка за изтриване на файлове


Ако допуснете грешка при изпълнение на претенция 1 и т.1.1. в същото време - "устройството не е на разположение."
(Както разбирам - не ни пука, защо?)

А останалата част от елементите се обработват поотделно.

неразбиране на криза по-кратък.
въпрос в съзнанието ми не беше много крива, но наистина трябва да се види, да разчитам на проблема.

1. Програмата виси тича, когато Windows стартира и таймерът се занимава с архивиране и изпращане E_mail за набор от файлове.
Не са видими признаци за неговото съществуване с изключение на иконата в системния трей не показват.
2. посоченото множество файлове строго случайни (може да варира от гледна точка на своето местоположение в мрежата и локални дискове).
Всички имена и пътища, които определяте себе си и те се съхраняват в INI-shke.
3. С файла на локалния диск е прост - просто трябва да се провери, а ако това не е отворен fyal друго приложение по време на лечението, но те са винаги на разположение.
С мрежа от по-сложно. Разбира се, ако на мрежово устройство по някаква причина не е на разположение (например за почистване на кабел от хъб извади метла) по време на действителната задача - задачата ще се провалят, ние ще го анализираме и да го разбере.
Но в този момент вече Pozdnjak треска - има някои адрес референтни дати, които трябва да се спазват.
4. Решаването на проблема - с интервал по-често от основните задачи на таймера проверяват - и ако дори ние можем да намерим тези файлове, а дори и да работят с тях.
5. Изпълнение в момента: пътят е регистрирано в INI-темпото shke създадете файл, пишете на линията, чете от мястото си, да я премахнете. Ако всичко мина правилно - след това OK. - ако не, програмата показва съобщение за грешка от серията "не директория наличност Проверка).

6. Въпросът е, както следва. Има ли начин да реализира претенцията 5 не се гони куп операции файлове в мрежата

Благодаря на всички за дискусията, извинете грешки във формулировката на въпроса.

Виждам само критика, и затова дам един пример, за това как да разберете
наличието на мрежово устройство:
Но той и пример:

тип
PNetResourceArray = ^ TNetResourceArray;
TNetResourceArray = масив [0..MaxInt DIV SizeOf (TNetResource) - 1] на TNetResource;

Процедура EnumResources (LpNR: PNetResource);
Var
NetHandle: THandle;
BufSize: Integer;
Размер: цяло число;
NetResources: PNetResourceArray;
Преброяване: Integer;
NetResult: Integer;
I: Integer;
NewItem: TListItem;
започвам
Ако WNetOpenEnum (
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
// RESOURCETYPE_ANY - всички ресурси
// RESOURCETYPE_DISK - колела
// - RESOURCETYPE_PRINT принтери
0
LpNR,
NetHandle) <> NO_ERROR
след напускане;
опитвам
BufSize: = 50 * SizeOf (TNetResource);
GetMem (NetResources, BufSize);
опитвам
докато Вярно задачи
започвам
Брой: = 1;
Размер: = BufSize;
NetResult: = WNetEnumResource (NetHandle граф, NetResources, размер);
Ако NetResult = ERROR_MORE_DATA след това
започвам
BufSize: = Размер;
ReallocMem (NetResources, BufSize);
Продължи;
приключи;
ако NetResult <> NO_ERROR след излизане;
Защото: = 0 до граф-1 направи
започвам
С NetResources ^ [I] направи
започвам
Ако RESOURCEUSAGE_CONTAINER =
(DwUsage и RESOURCEUSAGE_CONTAINER)
след това
EnumResources (@ NetResources ^ [I]);
Ако dwDisplayType = RESOURCEDISPLAYTYPE_SHARE Тогава
// ^^^^^^^^^^^^^^^^^^^^^^^^^ - ресурс
// RESOURCEDISPLAYTYPE_SERVER - компютър
// RESOURCEDISPLAYTYPE_DOMAIN - Работна група
// RESOURCEDISPLAYTYPE_GENERIC - Мрежа
започвам
NewItem: = Form1.ListView1.Items.Add;
NewItem.Caption: = LpRemoteName;
Край;
Край;
Край;
Край;
накрая
FreeMem (NetResources, BufSize);
приключи;
накрая
WNetCloseEnum (NetHandle);
приключи;
Край;

процедура TForm1.Button1Click (Sender: TObject);
Var
OldCursor: TCursor;
започвам
OldCursor: = Screen.Cursor;
Screen.Cursor: = crHourGlass;
С ListView1.Items направя
започвам
BeginUpdate;
Ясно;
EnumResource (нула);
EndUpdate;
Край;
Screen.Cursor: = OldCursor;
приключи;

Хората, помагат злоти. Сега има малък проблем - трябва да се провери, ако делът на мрежата на записа, не се опитва да създаде нов файл е на разположение. има ли решение на този проблем?

Памет: 0.75 MB
Време: 0,036 гр