Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизFileExists Найти похожие ветки
← →
R © (2004-07-22 04:15) [0]Функция FileExists довольно-таки глючноватая, подскажите
какими функциями Вы пользуетесь для определения существования
файла.
← →
Almaz © (2004-07-22 04:18) [1]А в чем ее "глючноватость" проявляется ? Сколько пользовался - не разу не сталкивался.
Удачи.
← →
antonn (2004-07-22 04:20) [2]А не могли бы вы описать пару конкретных глюков этой функции?
Все говорят что фуфло, а у меня работает нормально.
← →
ЮЮ © (2004-07-22 04:24) [3]FileName надо указывать полностью, а не надеяться что рабочей директорией в этот момень является та, о которой вы думаете, и глюков станет меньше
← →
R © (2004-07-22 04:41) [4]Не так все просто. На 99,99% у меня тоже к ней притензий нет,
но иногда на существующий файл она возвращает False,
объяснить я этого не могу, файл читаем провоодником и другими
файловыми программами, возможно есть какие то нюансы.
>FileName надо указывать полностью, а не надеяться что рабочей директорией в этот момень является та, о которой вы думаете, и глюков станет меньше
Полностью
← →
Magikan © (2004-07-22 05:14) [5]Я пользуюсь своей версией 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
← →
Palladin © (2004-07-22 05:46) [6]
> R © (22.07.04 04:41)
Ну пример то приведи.
← →
R © (2004-07-22 06:07) [7]>Ну пример то приведи.Привести не могу, потому что пример - это конкретный
файл, который функция не определяет, я анализировал,
подозреваю что связано либо с ошибкой структуры файла,
либо с соотношением файловых атрибутов(дата,размер и т.д.),
но это лишь мое предположение.
>Magikan ©
Потестирую.
← →
R © (2004-07-22 06:17) [8]>Magikan ©
Не отрабатывает.
← →
Sergey Kaminski © (2004-07-22 07:06) [9]либо с соотношением файловых атрибутов(дата,размер и т.д.)
Тут где-то уже обсуждалось. Используется функция FileAge, она выдает неправильный результат если дата файла меньше какой-то определенной даты; честно говоря, не помню, какой именно.
← →
Mell (2004-07-22 09:24) [10]function fileexits(filename:string):boolean;
var
sr:tsearchrec;
begin
if findfirst(filename,faanyfile,sr)=0 then
result:=true else result:=false;
findclose(sr);
end;
← →
REA © (2004-07-22 09:57) [11]>if findfirst(filename,faanyfile,sr)=0 then
>result:=true else result:=false;
тоже самое:
Result := findfirst(filename,faanyfile,sr) = 0;
← →
Anatoly Podgoretsky © (2004-07-22 10:02) [12]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;
← →
Anatoly Podgoretsky © (2004-07-22 10:03) [13]REA © (22.07.04 09:57) [11]
И таже ошибка, это не fileexits, исправления смотри в 12. Обратить внимание на faVolume-faDirectory
← →
MetalFan © (2004-07-22 10:20) [14]
> но иногда на существующий файл она возвращает False,
было такое, но под D6. лечилось установкой апдейтов.
← →
ALS (2004-07-22 13:27) [15]
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;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.031 c