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

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

Проверка имени файла [D7, WinXP]


Ilg ©   (2005-06-21 21:32:00) 

Здравствуйте!
Есть ли возможность проверить правильность имени файла до сохранения или чтения, т. е., например, не содержит ли имя запрещенных символов. (Что-то типа IsValidIdent)?
Заранее, Большое Спасибо!


-=XP=-   (2005-06-22 09:46:00) [1]

"Чтобы почувствовать вкус груши, надо ее попробовать." (С) Кажись-это-был-Конфуций


Anatoly Podgoretsky   (2005-06-22 08:25:00) [2]

Sulimxar ©   (21.06.05 23:15) [4]
Это не ТЗ, в ТЗ должно быть дано полное толкование правильность имени

Которое и на фиг не нужно, поскольку ничего не дает ни гарантии чтения, ни гарантии записи и даже ни гарантии видимости.


Faraday   (2005-06-22 07:34:00) [3]

Для чтения - FileExists(PathToFile).
Для записи удобнее юзать диалог SaveFile - он сам все проверит.


Virgo_Style   (2005-06-21 23:15:00) [4]

Помнится, была такая тема, но найти ее я не смог, если хочешь - поищи, может, тебе повезет =)

Насколько я помню, остановились на том, что точный результат можно получить только экспериментально. К примеру, 'A:\file.txt' - корректное имя? А если диска нет в дисководе? А если есть, но защищен от записи? А если на нем места не хватит? И так далее в том же духе.

Если же нужна именно предпроверка на корректность имени - то, видимо, нужно что-то вроде [1].


Sulimxar   (2005-06-21 23:15:00) [5]

2ANB
В ТЗ сказано "проверить правильность имени файла до сохранения или чтения" ;-) А то может у него диск для записи закрыт...
Ну а вообще так пожалуй действительно все и делают :-)


ANB   (2005-06-21 23:11:00) [6]

Я обычно пробую его создать и проверяю на ошибку. Если создался - можно удалить. Чтобы не мешал - можно завести пустой каталог в каталоге программы.


Sulimxar   (2005-06-21 22:57:00) [7]

Вроде не встречал, но накрайняк можно сделать что-то вроде этого
(библиотечная функция наверняка будет делаеть что-то наподобие, хоть конечно это "тупо влоб")

function IsValidName(s: string): boolean;
begin
  Result := true;
  len := Length(s);
  if len > 0 then
   begin
      i := 0;
      repeat
         inc(i);
         Result := not (s[i] in ['*', '?' {, другие запрещённые символы}]);
      until not Result or (i = len)
   end;
end;

вобщем что-то в таком духе...


Наверх

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