Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Проверка Валидности Имен Файлов в Delphi: Создание Безошибочной Функции

Delphi , Интернет и Сети , Браузер

При работе с файлами в среде Delphi важно убедиться, что используемое имя файла соответствует требованиям операционной системы. В Windows существуют определенные ограничения на имена файлов, например, запрет на использование некоторых символов и имен устройств. В этом руководстве мы рассмотрим, как создать функцию, которая проверяет валидность имени файла.

Шаг 1: Определение Недопустимых Символов и Имен

Первым шагом является определение набора символов и имен, которые не допускаются в именах файлов. Согласно спецификации Windows, следующие символы и имена должны быть исключены:

  • Недопустимые символы: <, >, :, *, ?, ", |, \, / и символы с кодом от 0 до 31.
  • Недопустимые имена устройств: CON, PRN, AUX, NUL, COM1-COM9, LPT1-LPT9.

Шаг 2: Создание Функции Проверки

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

function IsValidFilename(const FileName: string): boolean;
var
  I, L, Lw: Integer;
  InvalidChars: set of AnsiChar = [#0..#31, '\', '/', ':', '*', '?', '"', '<', '>', '|'];
  InvalidWords: array[0..21] of string = ('CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9');
begin
  Result := False;
  L := Length(FileName);
  if (L = 0) or (L > 255) or (FileName[L] = '.') or (FileName[L] = ' ') then Exit;
  for I := 1 to L do
    if (Ord(FileName[I]) <= 255) and (AnsiChar(FileName[I]) in InvalidChars) then Exit;
  FileName := UpperCase(FileName);
  for I := 0 to 21 do
  begin
    Lw := Length(InvalidWords[I]);
    if (Pos(InvalidWords[I], FileName) = 1) and
       ((Lw = Length(FileName)) or (FileName[Lw+1] = '.')) then Exit;
  end;
  Result := TPath.HasValidFileNameChars(FileName, False) and DirectoryExists(ExtractFilePath(FileName));
end;

Шаг 3: Проверка Существования Директории

Функция должна также убедиться, что указанная в пути к файлу директория существует. Это можно сделать с помощью функции DirectoryExists из модуля SysUtils.

Шаг 4: Проверка Доступа к Директории

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

Заключение

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

Создано по материалам из источника по ссылке.

Создание функции в Delphi для проверки валидности имени файла согласно правилам операционной системы Windows.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-20 22:26:24/0.0019688606262207/0