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

Вниз

FileExists( A: 1.txt )   Найти похожие ветки 

 
Seldon   (2003-09-21 11:32) [0]

Как при этом избежать появления окна "В устройстве нет диска" при отсутствии дискеты в дисководе.


 
Islander   (2003-09-21 11:43) [1]

Проверять сначала готовность диска. Вот код:

function IsDriveReady(DriveLetter : char) : boolean;
var
OldErrorMode : Word;
OldDirectory : string;
begin
OldErrorMode := SetErrorMode(SEM_NOOPENFILEERRORBOX);
GetDir(0, OldDirectory);
{$I-}
ChDir(DriveLetter + ":\");
{$I+}
if IoResult = 0 then Result := True else Result := false;
ChDir(OldDirectory);
SetErrorMode(OldErrorMode);
end;


 
Doctor Deejay ©   (2003-09-21 13:39) [2]

А как этого избежать, если используешь ShellTreeView???


 
Islander   (2003-09-21 15:45) [3]

Точно также. Только обработку производить вместо вот этого куска кода...

ChDir(DriveLetter + ":\");


 
olookin ©   (2003-09-21 16:51) [4]

можно проще - использовать обработчик ошибки EInOutError...
Например:

try AssignFile(f,"A:\1.txt"); Rewrite(f);
except on EInOutError do showmessage("no disk"); end;

Сообщение будет появляться только при компиляции, и то если включен флаг Show On Delphi Exceptions


 
Seldon   (2003-09-21 18:34) [5]

>Islander
Сообщение всё равно показывается при вызове
ChDir(DriveLetter + ":\");


 
SergeyX   (2003-09-22 04:04) [6]

Я сталкивался с такой проблеммой и вот как я её решил:

function DriveExists(DriveLetter : char) : Boolean;
var
VolumeName,
FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,
FileSystemFlags : DWORD;
begin
Result:=GetVolumeInformation(pchar(driveletter+":\"),VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags,
FileSystemName,MAX_PATH) and (GetLastError<>21);
end;

function FileExists(s:string):boolean;
var d:char;
begin
Result:=false;
if length(s)=0 then exit;
d:=s[1];
if not DriveExists(d) then exit;
Result:=SysUtils.FileExists(s);
end;




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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
1-3860
dream
2003-09-19 09:22
2003.10.02
Cheskbox в listview ! как сделать чтобы можно было выбрать


1-3965
sword
2003-09-20 10:52
2003.10.02
Как нарисовать таблицу в Richedit e


14-4053
andre
2003-09-14 22:56
2003.10.02
Смайлы.


3-3717
Dream
2003-09-13 14:09
2003.10.02
Как подсчитать общую сумму в 1 колонке ?


1-3972
waw
2003-09-19 16:26
2003.10.02
Как DBGridEh сделать запрет на изменение определенных ячеек?