![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FileExists [D5]
R © (2004-07-22 04:15:00)Функция FileExists довольно-таки глючноватая, подскажите
какими функциями Вы пользуетесь для определения существования
файла.
ALS (2004-07-22 13:27:00) [1]
function isFileExists(const FileName: string): boolean;
var H: THandle;
FData: TWin32FindData;
begin
H := FindFirstFile(PChar(FileName), FData);
if H = INVALID_HANDLE_VALUE then Result := False
else
begin
Windows.FindClose(H);
Result := True
end
end;
MetalFan (2004-07-22 10:20:00) [2]
> но иногда на существующий файл она возвращает False,
было такое, но под D6. лечилось установкой апдейтов.
Anatoly Podgoretsky (2004-07-22 10:03:00) [3]REA © (22.07.04 09:57) [11]
И таже ошибка, это не fileexits, исправления смотри в 12. Обратить внимание на faVolume-faDirectory
Anatoly Podgoretsky (2004-07-22 10:02:00) [4]Mell (22.07.04 09:24) [10]
Это надо исправить
function fileexits(filename:string):boolean;
var
sr:tsearchrec;
begin
result := findfirst(filename,faanyfile-faVolume-faDirectory,sr) = 0;
findclose(sr);
end;
REA (2004-07-22 09:57:00) [5]>if findfirst(filename,faanyfile,sr)=0 then
>result:=true else result:=false;
тоже самое:
Result := findfirst(filename,faanyfile,sr) = 0;
Mell (2004-07-22 09:24:00) [6]function fileexits(filename:string):boolean;
var
sr:tsearchrec;
begin
if findfirst(filename,faanyfile,sr)=0 then
result:=true else result:=false;
findclose(sr);
end;
Sergey Kaminski (2004-07-22 07:06:00) [7]либо с соотношением файловых атрибутов(дата,размер и т.д.)
Тут где-то уже обсуждалось. Используется функция FileAge, она выдает неправильный результат если дата файла меньше какой-то определенной даты; честно говоря, не помню, какой именно.
R (2004-07-22 06:17:00) [8]>Magikan ©
Не отрабатывает.
R (2004-07-22 06:07:00) [9]>Ну пример то приведи.Привести не могу, потому что пример - это конкретный
файл, который функция не определяет, я анализировал,
подозреваю что связано либо с ошибкой структуры файла,
либо с соотношением файловых атрибутов(дата,размер и т.д.),
но это лишь мое предположение.
>Magikan ©
Потестирую.
Palladin (2004-07-22 05:46:00) [10]
> R © (22.07.04 04:41)
Ну пример то приведи.
Magikan (2004-07-22 05:14:00) [11]Я пользуюсь своей версией FileExists и проблем нет
//Проверка на существование файла
function FileExists(FileName: string): Boolean;
var
f: File;
begin
Assign(F, FileName);
{$I-}
Reset(F);
if IOResult=0 then begin
Result:=True;
Close(F);
end
else
Result:=False
{$I+}
end;
В будущем буду переделывать под стандартные вызовы API
R (2004-07-22 04:41:00) [12]Не так все просто. На 99,99% у меня тоже к ней притензий нет,
но иногда на существующий файл она возвращает False,
объяснить я этого не могу, файл читаем провоодником и другими
файловыми программами, возможно есть какие то нюансы.
> FileName надо указывать полностью, а не надеяться что рабочей директорией в этот момень является та, о которой вы думаете, и глюков станет меньше
Полностью
ЮЮ (2004-07-22 04:24:00) [13]FileName надо указывать полностью, а не надеяться что рабочей директорией в этот момень является та, о которой вы думаете, и глюков станет меньше
antonn (2004-07-22 04:20:00) [14]А не могли бы вы описать пару конкретных глюков этой функции?
Все говорят что фуфло, а у меня работает нормально.
Almaz (2004-07-22 04:18:00) [15]А в чем ее "глючноватость" проявляется ? Сколько пользовался - не разу не сталкивался.
Удачи.