![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему может не работать FileExisit?
Дмитрий Белькевич © (2010-06-22 17:55:00)Ситуация: файлы видно в проводнике, но FileExists возвращает False. 2003-й сервер, Delphi 2010. Причём не на один какой-то файл, а на сотни. Файлы ничем не выдающиеся - обычная пачка данных, ничего системного. Файлы не открыты ничем и зашарены на чтение/запись. Вирусов/антивирусов, говорят, нет. Уж и не знаю, что думать...
Дмитрий Белькевич (2010-06-24 10:23:00) [1]Лучше в дворники - да, мети себе, да мети :)
Дмитрий Белькевич (2010-06-24 10:22:00) [2]Оказался битый веник. Нас чуть не заставили ехать на место самих...
Тяжела и неказиста жизнь простого программиста, да...
Дмитрий Белькевич (2010-06-23 16:43:00) [3]
> Вирус не исключаешь, человеческий фактор? Саботаж?
Всё возможно, поедут разбираться, неясно, что происходит. Местные говорят - что иногда одни и те же файлы доступны, иногда - нет. Чудеса какие-то.
Спасибо всем за обсуждение, Трояновскому за убеждение в бессмысленности, проверку уберу.
Anatoly Podgoretsky (2010-06-23 15:49:00) [4]Вирус не исключаешь, человеческий фактор? Саботаж?
Leonid Troyanovsky (2010-06-23 11:08:00) [5]
> Дмитрий Белькевич (23.06.10 10:10) [16]
> Я делаю и то и другое. Предварительно проверяю, затем открываю:
Первое - излишне и бессмысленно.
Нужна лишь обработка исключения.
try
FStream := TFileStream.Create(FFileName, fmOpenRead or fmShareDenyWrite);
except
on E: EFOpenError do
begin
E.Message := E.Message + ': '+ SysErrorMessage(GetLastError);
raise;
end;
end;
--
Regards, LVT.
Плохиш (2010-06-23 11:08:00) [6]
> Дмитрий Белькевич (23.06.10 10:44) [20]
> Что делать - установка в тысяче км от меня, удалённого управления
> принципиально не дают, ну что я могу еще сделать...
Странно в постах [9] и [12] какие-то строки даются и исключения упоминаются, а про тысячи км считается неважной информацией.
Типа, такая недоциганка лечит без фотографии.
12 (2010-06-23 10:48:00) [7]> что я могу еще сделать...
отправить версию с заплаткой или утилиту диагностики, попросить ее выполнить
Дмитрий Белькевич (2010-06-23 10:44:00) [8]
> И почему я не удивлён?
Что делать - установка в тысяче км от меня, удалённого управления принципиально не дают, ну что я могу еще сделать...
Плохиш (2010-06-23 10:35:00) [9]
> 12 © (23.06.10 10:34) [18]
Так человек же ещё не доехал.
12 (2010-06-23 10:34:00) [10]что молчим по поводу dialog1.open, найти файл вручную и сравнить с тем что программа вычислила?
Плохиш (2010-06-23 10:17:00) [11]
> Дмитрий Белькевич (22.06.10 17:55)
>
> Ситуация: файлы видно в проводнике, но FileExists возвращает
> False.
> Дмитрий Белькевич (23.06.10 10:10) [16]
> Человек сегодня поедет разбираться на место
И почему я не удивлён?
Дмитрий Белькевич (2010-06-23 10:10:00) [12]>Уже не раз говорили, сейчас он есть, а через кол времени - нет.
Всё еще хуже, файлы точно есть :) Их никто не удаляет. А если они когда-то и удаляются, то вначале удаляются записи на эти файлы в базе, а только потом - сами файлы, так что на других установках всё работает идеально. Вот - в одном месте такое случилось, пока не знаю, что делать.
>Надо просто делать нужные действия и реагировать на исключения.
Я делаю и то и другое. Предварительно проверяю, затем открываю:
FStream := TFileStream.Create(FFileName, fmOpenRead or fmShareDenyWrite);
и обрабатываю исключения, если произойдут.
Человек сегодня поедет разбираться на место, возможно файлмон чем-то поможет. Пока что не могу представить, что там не так.
Leonid Troyanovsky (2010-06-23 08:25:00) [13]
> Дмитрий Белькевич (22.06.10 17:55)
> Ситуация: файлы видно в проводнике, но FileExists возвращает
> False.
Оная функция более вредна, чем полезна.
Уже не раз говорили, сейчас он есть, а через кол времени - нет.
Надо просто делать нужные действия и реагировать на исключения.
Дропни из проводника файл в окно "Выполнить.." (Win+R), скопируй
и брось сюда. Вот, например
"C:\Documents and Settings\lvt.OFFICE\My Documents\Books\palanik_kishki.rtf"
--
Regards, LVT.
Дмитрий Белькевич (2010-06-22 19:58:00) [14]
> Я так понял, что тебе некогда, да и нет желания отвечать
> на посты адресованные тебе.
Вроде бы на всё отвечаю... Другой информации, кроме уже сказанной у меня нет.
> Успеха тебе в дальнейшем процессе программирования
Ничего - прорвёмся, не в первый раз :)
Smile (2010-06-22 19:43:00) [15]Я так понял, что тебе некогда, да и нет желания отвечать на посты адресованные тебе.
Успеха тебе в дальнейшем процессе программирования
:)
Дмитрий Белькевич (2010-06-22 19:16:00) [16]
> Выложи значение FileName изFileExists(FileName)
Смотри исключение в
http://www.makhaon.com/forum/viewtopic.php?t=420
вот такой же путь и в
> FileExists(FileName)
Smile (2010-06-22 19:11:00) [17]> Дмитрий Белькевич (22.06.10 18:25) [3]
> Путь точно тот.
Выложи значениеFileNameиз
FileExists( FileName)
12 (2010-06-22 19:10:00) [18]>> if not FileExists(FileName) then
if opendialog1.execute then
if opendialog1.FileName <> FileName then
Дмитрий Белькевич (2010-06-22 18:59:00) [19]Временно кинул себе на форум строку, врятли туда кто-то полезет и что-то на этом форуме поправит, но мало ли:
http://www.makhaon.com/forum/viewtopic.php?t=420
Вот такую строку не могу добавить на форум и вот такое исключение случается.
Дмитрий Белькевич (2010-06-22 18:55:00) [20]
> Зачем оно тебе это программирование?
Угу, вот и я думаю :)
Блин, ну жесть какая - не могу добавить строку-путь в форум. Пробую в ie/опере, перенабрал руками, не добавляет...