Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.03.30;
Скачать: CL | DM;

Вниз

FileExists - дает диалог в XP   Найти похожие ветки 

 
z2000   (2010-03-19 10:15) [0]

Заметил такую особенность функция FileExists выводит диалоговое окно в win XP когда происходит следующее:
работали с CD ромом, вынули диск и вот если функция после этого проверяет наличие файла на отсутствующем в приводе
диске CD она дает диалоговое окно об отсутствие файла.

Понятно что оно реализовано в недрах WIN API, но все же
как от него избавиться, может кто с таким сталкивался,
эта штука в определеных моментах совсем ненужная и даже вредная...


 
evvcom ©   (2010-03-19 10:33) [1]

Напиши мелким и мягким


 
{RASkov} ©   (2010-03-19 10:34) [2]

> [0] z2000   (19.03.10 10:15)

Приведи пример кода, который выполняет описанное в [0]


 
Anatoly Podgoretsky ©   (2010-03-19 10:51) [3]

SetErrorMode


 
z2000   (2010-03-19 12:36) [4]

Anatoly Podgoretsky   Спасибо!


 
DVM ©   (2010-03-19 13:16) [5]


function FileExists2(const FileName: string): Boolean;

 function ExistsLockedOrShared(const Filename: string): Boolean;
 var
   FindData: TWin32FindData;
   LHandle: THandle;
 begin
   LHandle := FindFirstFile(PChar(Filename), FindData);
   if LHandle <> INVALID_HANDLE_VALUE then
   begin
     Windows.FindClose(LHandle);
     Result := FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0;
   end
   else
     Result := False;
 end;

var
 Code: Integer;
 LastError: Cardinal;
 OldMode: Cardinal;
begin
 OldMode := SetErrorMode(SEM_FAILCRITICALERRORS);
 Code := Integer(GetFileAttributes(PChar(FileName)));
 if Code <> -1 then
   Result := (FILE_ATTRIBUTE_DIRECTORY and Code = 0)
 else
 begin
   LastError := GetLastError;
   Result := (LastError <> ERROR_FILE_NOT_FOUND) and
     (LastError <> ERROR_PATH_NOT_FOUND) and
     (LastError <> ERROR_INVALID_NAME) and ExistsLockedOrShared(Filename);
 end;
 SetErrorMode(OldMode);
end;



Страницы: 1 вся ветка

Текущий архив: 2014.03.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
3-1296464216
12
2011-01-31 11:56
2014.03.30
Научите в ODAC обрабатывать ошибки.


15-1381177802
Юрий
2013-10-08 00:30
2014.03.30
С днем рождения ! 8 октября 2013 вторник


2-1371586268
vbh
2013-06-19 00:11
2014.03.30
Динамические компонеты


15-1381168512
Noso
2013-10-07 21:55
2014.03.30
Возвращение набора данных из Ms sql


6-1272206861
tippa
2010-04-25 18:47
2014.03.30
много подключений с одного сокета