Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FileExists(myfName) [D6, WinXP]


opoloXAI ©   (2008-06-06 15:51:00) 

Добрый день.
На HDD ТОЧНО есть файл myfName (причём путь к этому файлу указан и он правильный). Функция FileExists(myfName) возвращает (как и положено) true. Всё OK.
НО вопрос просто абсурдный: функция FileExists(myfName) возвращает false, когда я открываю этот файл: он состоит из текста (примерно 20%) и остальное $FF = размер файла 256Кб (если надо могу выслать по почте но правда ближе к вечеру). Не работает именно этот файл. {другими приложениями этот файл не открыт} В чём моя ошибка?


opoloXAI   (2008-06-09 12:22:00) [1]

спасибо Loginov Dmitry: FindClose(SRec); забыл.


Loginov Dmitry   (2008-06-09 09:51:00) [2]

> Я заменил FileExists()  на:
> function  myFileExists(fName: String): Boolean;
> var SRec: TSearchRec;
> begin
>    If FindFirst(fName,faAnyFile,SRec)=0 then Result:=true
>                                         else Result:=false;
>
> end;
> и теперь все работает как часы. Большое всем спасибо.


Закрывать поиск кто будет?


> Я заренее знал, что вопрос слишком "глупый". Но этот глюк
> реально существует.


см. [7]


Anatoly Podgoretsky   (2008-06-09 09:19:00) [3]

> opoloXAI  (09.06.2008 8:32:06)  [6]

Глюк только в голове


opoloXAI   (2008-06-09 08:32:00) [4]

Я заренее знал, что вопрос слишком "глупый". Но этот глюк реально существует. Я уверен. (Может когода-нибудь ещё кто-то нарвётся).
Я заменил FileExists()  на:
function  myFileExists(fName: String): Boolean;
var SRec: TSearchRec;
begin
    If FindFirst(fName,faAnyFile,SRec)=0 then Result:=true
                                         else Result:=false;
end;
и теперь все работает как часы. Большое всем спасибо.


jack128_   (2008-06-07 15:43:00) [5]

ну забей на FileExists и напиши свою на основе FindFirstFile...

Если интересно разобраться вызови для открытого файла GetFileAttributes и проверь результат его выполнения на ошибку (RaiseLastOSError + F1)


Loginov Dmitry   (2008-06-07 09:29:00) [6]

Кто еще помимо твоей программы работает (либо может работать) с этим файлом?
Где ответ на [1]? Приведи код открытия файла. Как используешь файл (чтение / запись)?
Что будет, если сделать копию файла в другом каталоге и работать с нею?


Renegat   (2008-06-07 09:12:00) [7]

> Или ты пытаещься «открыть» файл и тогда, когда возвращает false?

Нет. Когда он не ещё открыл этот файл, функция возвернёт ему 1. А когда открыл - уже не 1, а 0, хотя файл же есть - вот он, открытый!


ЮЮ   (2008-06-07 04:55:00) [8]

> Функция FileExists(myfName) возвращает(как и положено)
> true. Всё OK.
> НО вопрос просто абсурдный: функция FileExists(myfName)
> возвращает false


Ничего не понял. Так что она возвращакт?
Или ты пытаещься «открыть» файл и тогда, когда возвращает false?


Ega23   (2008-06-06 16:53:00) [9]

как открываешь?


Наверх

Титульная страница Поиск, карта сайта Написать письмо