![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить является ли имя файла допустимым? [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Nikolai_S © (2002-12-16 16:30:00)Необходимо, чтобы в программе пользователь вводил имя файла, который далее будет создан программой. Как проверить является ли введенное пользователем имя файла допустимым?
Nikolai_S (2002-12-24 11:50:00) [1]2 Илайдж
Может так и проще... Но еще нужно и не только латинские символы разрешать. Так как имя файла у меня - это еще и заголовок сохраненного файла. Просто заставлять юзеров вводить отдельно заголовок и имя файла - слишком сложно для них будет. А вот если сразу ввести заголовок и сохранить данные в файл с таким же именем - то так проще. Потому и нужно запрещать ввод некоторых символов....
2 Smithson
У меня тут с после фразы "символы национадбных языков" появился еще вопрос: А что нужно сделать, чтобы разрабатываемый софт поддерживал все эти языки? Даже китайский, японский и другие примудрые языки (в которых справа налево пишут и т.д.)?
Илайдж (2002-12-23 16:52:00) [2]Куда как проще не запрещать, а разрешать: a..z, A..Z,0..9 и все. Шаг влево - шаг вправо -> попытка обмануть программу ;)
Smithson (2002-12-23 16:47:00) [3]Но могут разрешить. Плюс есть NTFS. Плюс есть Unicode (мать его) и сомволы национадбных языков...
Nikolai_S (2002-12-23 15:35:00) [4]Но я не думаю, что следующая версия FAT запертит еще какие-нибудь символы. Ведь тогда невозможно будет перенести файлы из старой FAT в новую. Вряд ли на такое пойдут.
Anatoly Podgoretsky (2002-12-19 11:35:00) [5]Ketmar © (19.12.02 11:23)
Но ты особо не доверяй этой полноте, могут оказаться неожиданности, этот список для текущей версии файловой системы FAT
Nikolai_S (2002-12-19 11:25:00) [6]Спасибо. Это помогло. В проводнике высвечивается полный список недопустимых символов
Reindeer Moss Eater (2002-12-19 11:16:00) [7]Попробуй в проводнике создать файл c именем "*.txt" и сразу увидишь полный набор недопустимых символов для Windows
Anatoly Podgoretsky (2002-12-19 11:15:00) [8]У тебя проводник есть* Если есть, то пробуй переминовать и быстро у тебя будет этот список, это если конечно не хочешь покопаться у свалке у Микрософта
Но Windows это не файловая система, а ОС на которой могут быть установленные различные файловые системы. Вполне обычная с ситуация FAT, NTFS, CDFS, SMBFS
Nikolai_S (2002-12-19 11:09:00) [9]Мне нужна проверка имен файлов только в Windows. А где узнать какие символы являются недопустимыми для имен файлов в Windows? И есть ли различия для разных Windows?
Юрий Зотов (2002-12-16 18:41:00) [10]В Delphi (и в ее справке) есть функция MatchesMask.
Anatoly Podgoretsky (2002-12-16 17:01:00) [11]Nikolai_S © (16.12.02 16:48)
Это сильно зависит от тома
На try он не ругнется, если ты после него поставишь except
Reindeer Moss Eater (2002-12-16 16:53:00) [12]Если файл предназначен для Windows, набор символов один и небольшой.
Если для тома NetWare3.x,то набор несколько иной.
А есть еще UNIX, DOS, .....
Alexei113 (2002-12-16 16:51:00) [13]Попробуй создать массив некорректных символов а затем просто сверяй каждый введенный символ с содержимым массива...
Nikolai_S (2002-12-16 16:48:00) [14]Я имел в виду то, чтобы в имени файла содержались только допустимые символы. Как это проверить?
Если использовать try при создании, то тогда он ругнется на все, что будет не так: нет места на диске, нельзя записать в данную директорию и т.д. и т.п.
Нужна функция, которая просто обрабатывала бы строку с именем файла и выдавала True (если все ОК) или False (если строка содержит не допустимые для имени файла символы)
FreeLancer (2002-12-16 16:43:00) [15]Проще всего пробовать его создать... try
Reindeer Moss Eater (2002-12-16 16:35:00) [16]Вроде все просто: проверить на наличие во введенном имени недопустимых символов.
Правда в зависимости от тома, на котором будет сохраняться файл, набор недопустимых символов может сильно отличаться
Alexei113 (2002-12-16 16:34:00) [17]Что значит Доступным - по корректности введенного имени или по
факту существует файл или нет ?