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

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

Ошибка Invalid File Name [D4, WinXP]


Страницы:   1 2

Германн ©   (2005-09-20 18:04:00) 

Может ли сабж возникнуть по каким либо еще причинам, кроме банальных, типа использования недопустимых символов?


Германн   (2005-09-23 02:55:00) [1]

2 Джо ©   (23.09.05 02:42) [33]

А что вы скажете на "права" пользователей!
ИМХО, есс-но, что на каталог в который устанавливается программа, права "наверно?" есть". А на те, которые ForseDirectories?


Джо   (2005-09-23 02:42:00) [2]


> То есть, если Вам при установке программы нужно создать
> некую иерархию служебных подкаталогов(папок), неужели вы
> будете каждый раз при запуске программы или еще когда пользовать
>  ForceDirectories?

Вообще-то, я так и делаю :) Может, оно и не оправдано и т.д., но пару раз крупно нарвался с шибко умными пользователями, теперь никогда не полагаюсь на структуру каталогов, где бы она ни использовалась... Не в качестве похвальбы - просто к слову ;-)


Германн   (2005-09-23 02:35:00) [3]

2 Джо ©   (23.09.05 02:00) [31]
Честно говоря, я и не ожидал "милости от Борланда!"
Но надеялся (может быть напрасно) на некую "приемственность".
Т.е. на "совместимость версий "сверху-вниз"" :(

То есть, если Вам при установке программы нужно создать некую иерархию служебных подкаталогов(папок), неужели вы будете каждый раз при запуске программы или еще когда пользовать  ForceDirectories?

Но и суть то не в этом, существует ли каталог(папка) с таким именем! Суть в том, что что "сообщение об ошибке" в этом случае стало менее конкретным, чем оно было ранее!


Джо   (2005-09-23 02:00:00) [4]

Нужно было использовать ForceDirectoriesили функциональный аналог, а не ожидать милости от Борланда ;p


Германн   (2005-09-23 01:10:00) [5]

Таки есть некая "подлянка" от Борланда.
В TP7 ReWrite(F) если имя файла включало в себя "отсутствующий" каталог, всегда (и при $I+ и при $I-) выдавало IOResult=3. Runtime error 003, Path not found.
А вот в Делфи при $I-  IOResult=3 (Path not found),  а при $I+ - Invalid file name. :(


Германн   (2005-09-22 16:10:00) [6]

Таки да.
Проблема была в том, что программа пыталась создавать временный звуковой файл с именем <INSTALLDIR>/SOUND/TEMP/NNNN.WAV, а инсталлятор создал папку <INSTALLDIR>/SOUND/TMP :(


Digitman   (2005-09-22 08:28:00) [7]


> Германн ©   (22.09.05 01:51) [26]


> может быть до PlaySound и не доходит


ну начинается !)

то доходит, то не доходит ..

ты уж определись для начала, КАКАЯ конкретно строчка твоего кода при своем исполнении возбуждает искл.ситуацию, потом и разговор предметный будет о причинах происходящего ..


Германн   (2005-09-22 02:21:00) [8]

Ну да.
А с другой стороны, а как производится анализ "валидности" имени файла?
Имхо, "\" должно иметь смысл - переход в подкаталог! Но вдруг у MS другой алгоритм?


Германн   (2005-09-22 01:51:00) [9]

Блин!
А может быть до PlaySoundи не доходит. :(
Сейчас обнаружил, что если я удалю свой каталог для временных WAV'ов, то выдается такая же ошибка. Т.е. по аналогии с ТР должно бы быть "Path not found", но однако - InvalidFileName. :(
И как тут быть?

Но проверил свой инсталлятор, вышеописанный каталог должен создавться!


umbra   (2005-09-21 15:14:00) [10]

Это очень похоже на то, что у пользователя, запускающего прогу нет прав на чтение (или исполнение) или самого файла или какой-то папки по пути к нему (если речь идет о ХР, 2000, 2003


Anatoly Podgoretsky   (2005-09-21 15:10:00) [11]

Германн ©   (21.09.05 14:15) [20]
Это есть по месту выполнения операции, обрабатывай ошибки там.


Германн   (2005-09-21 15:04:00) [12]

2 Digitman ©   (21.09.05 14:40) [21]

Именно это сейчас и делаю.
Завтра буду у клиента на объекте смотреть.
А Германн ©   (21.09.05 14:15) [20] написано в контексте [18]


Fay   (2005-09-21 14:46:00) [13]

2 Hamster ©   (20.09.05 18:16) [2]
не null, а nul


Digitman   (2005-09-21 14:40:00) [14]


> Германн ©   (21.09.05 14:15) [20]


> А как его здесь поиметь?


ты не заболел ли ?

протоколируй ВСЕ вызовы PlaySound, выясни, при каком значении 1-го параметра происходит отказ


Германн   (2005-09-21 14:15:00) [15]

2 Anatoly Podgoretsky ©   (21.09.05 14:09) [18]

> Германн ©   (21.09.05 13:18) [11]
> Вот здесь неплохо бы иметь и имя файла


А как его здесь поиметь?
В EInOutError нет информации об имени файла :(


Anatoly Podgoretsky   (2005-09-21 14:15:00) [16]

И как я понял ты используешь глобальный последний обработчик ошибки, после которого выход из программы. А устойчивые к сбоям программы обрабатывают ошибку по месту выполнения операции и продолжают работать дальше.


Anatoly Podgoretsky   (2005-09-21 14:09:00) [17]

Германн ©   (21.09.05 13:18) [11]
Вот здесь неплохо бы иметь и имя файла


Германн   (2005-09-21 14:03:00) [18]

Удалено модератором


Германн   (2005-09-21 14:03:00) [19]

2
Digitman ©   (21.09.05 13:47) [14]
evvcom ©   (21.09.05 13:50) [15]

Экспериментировать буду завтра. На том объекте, где это все случилось. О результатах сообщу, если кому интересно будет.
Но суть в том, что эта программа работает уже около 8 лет у сотен покупателей. С ней случалось всякое, но такого пока не было. :(
Хотел просто заранее узнать в какие стороны еще копать, чтобы не задерживать клиентов.


evvcom   (2005-09-21 13:50:00) [20]

а если закоммментарить вызов PlaySound, ошибка исчезает? Тогда смотреть на каком именно имени валится exception


Страницы:   1 2

Наверх

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