Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Ошибка OpenDialog'а


Автор: Canada 2.5.2009, 22:43
Моя программа работает с документами, которые я открываю через OpenDialog, далее там идет

Код

     for i:=0 to Opendialog1.Files.Count-1 do
      begin       


И все было всегда нормально. Сегодня попытался открыть 10 000+ файлов так. И получаю каждый раз ошибку. Что программа не может найти файл. И файл, ощущение что прога обрезала название этого файла. поэтому и не может его найти. "Cannot open file "C:\Docs\TextFileResizedDocument-1473" Такого файла и правда нет. Т.к. как минимум они все с расширением .doc идут. Вопрос: может у ОпенДиалога буффер для названий заканчивается? И как тогда с этим бороться?

Автор: Keeper89 2.5.2009, 23:59
TOpenDialog - это обёртка над API-функцией GetOpenFileName (см. http://msdn.microsoft.com/en-us/library/ms646927(VS.85).aspx). Вот выдержка:
Цитата

Note, when selecting multiple files, the total character limit
for the file names depends on the operating system and the version of the function.
    * Windows 95/98/Me: (only ANSI is supported) no restriction
    * Microsoft Windows NT4 and earlier: 32k limit
    * Windows 2000: (ANSI) 32k limit, (Unicode) no restriction 

Но на самом деле ограничение по длине существует в Windows 2000 и выше.

P.S. Так что задумайтесь над более рациональном способом выбора такого количества файлов. Как вариант выбор директории или считывание по маске.

Добавлено @ 00:02
Кстати, вот http://forum.vingrad.ru/forum/topic-241589/anchor-entry1807353/0.html тема уже обсуждалась.

Автор: Canada 3.5.2009, 17:08
Спасибо огромное, Кипер, как всегда выручил. smile 

Автор: Keeper89 3.5.2009, 17:33
Canada,  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)