Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизПроверка файла Найти похожие ветки
← →
Wolferio © (2006-11-21 15:16) [0]Добрый день.
Как проверить используется ли файл другой программой или пользователем, а также испольжуется ли файл по сети.
Использую такую функцию, но она работает не правильно, помогите разобраться:
function WorkFile(fName: string): boolean;
var
HFileRes: HFILE;
begin
Result := false;
if not FileExists(fName) then exit;
HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Result := (HFileRes = INVALID_HANDLE_VALUE);
if not Result then CloseHandle(HFileRes);
end;
Заранее благодарен.
← →
Сергей М. © (2006-11-21 15:18) [1]
> она работает не правильно
И на основании чего сделано сие умозаключение ?
← →
clickmaker © (2006-11-21 15:32) [2]в дополнение к этому
(HFileRes = INVALID_HANDLE_VALUE);
надо еще
GetLastError() = ERROR_SHARING_VIOLATION
← →
Wolferio © (2006-11-21 16:07) [3]
> И на основании чего сделано сие умозаключение ?
Методом научного..........
> в дополнение к этому
> (HFileRes = INVALID_HANDLE_VALUE);
> надо еще
> GetLastError() = ERROR_SHARING_VIOLATION
После какой строки я должен прописать GetLastError() = ERROR_SHARING_VIOLATION
Если можно пропиши в эту функцию а то я не совсем понимаю.
Спасибо.
← →
clickmaker © (2006-11-21 16:40) [4]
> [3] Wolferio © (21.11.06 16:07)
если Handle = INVALID, это всего лишь значит, что файл не удалось открыть. А GetLastError() вернет причину отказа.
Ку?
← →
Anatoly Podgoretsky © (2006-11-21 17:08) [5]> Wolferio (21.11.2006 16:07:03) [3]
Ну это совсем простейшая функция, проще быть не может, она возвращает код ошибки
N := GetLastError;
← →
Wolferio © (2006-11-22 13:04) [6]Тему продолжаю снова поскольку даная функция не всегда работает.
Если файл открыт например Word-ом то функци я возвращает код ошибки, тоисть файл занат, но если файл открыть например Far-ом то функция возвращает код ошибки 0 тоисть файл не занят другой програмой или пользователем. Может у кого есть иной подход к решению этой проблеми.
← →
clickmaker © (2006-11-22 13:06) [7]
> но если файл открыть например Far-ом то функция возвращает
> код ошибки 0 тоисть файл не занят
Far (как и любая другая программа) может открыть, прочитать в память и закрыть
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c