Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.022 c
14-1090735169
GrayFace
2004-07-25 09:59
2004.08.08
Лучший хостинг


14-1090401343
ВиТ
2004-07-21 13:15
2004.08.08
Сколько стоит прога?


3-1089799666
vic1
2004-07-14 14:07
2004.08.08
Подключение к MSSQL2000


3-1089804219
Shama_n
2004-07-14 15:23
2004.08.08
Как на SQL записать код символа вместо его явного указания?


11-1078407548
SkyNet
2004-03-04 16:39
2004.08.08
mck




   Наверх