Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2011, 15:33   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Найти файл без расширения

Так я делаю проверку фаил или папка
Код:
  if ExtractFileExt(Edit1.Text) = '' then
  // Папка
  begin
    // Проверка на существование папки по указанному пути
    if DirectoryExists(Edit1.Text) then
    begin
      ShowMessage('Папка "' + ExtractFileName(Edit1.Text) + '" по адресу "' + ExtractFilePath(Edit1.Text) + '" имеет атрибут "' + IntToStr(FileGetAttr(Edit1.Text)) + '"');
    end
    else ShowMessage('Папка "' + ExtractFileName(Edit1.Text) + '" по адресу "' + ExtractFilePath(Edit1.Text) + '" не найдена"');
  end
  else
  // Файл
  begin
    if FileExists(Edit1.Text) then ShowMessage('Файл "' + ExtractFileName(Edit1.Text) + '" по адресу "' + ExtractFilePath(Edit1.Text) + '" имеет атрибут "' + IntToStr(FileGetAttr(Edit1.Text)) + '"')
    else ShowMessage('Файл "' + ExtractFileName(Edit1.Text) + '" по адресу "' + ExtractFilePath(Edit1.Text) + '" не найден');
  end;
Но если файл без расширения, то уже не знаю как выполнить проврку в этом случае

Последний раз редактировалось Shouldercannon; 30.04.2011 в 15:53.
Shouldercannon вне форума Ответить с цитированием
Старый 30.04.2011, 16:01   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

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

Последний раз редактировалось Аватар; 30.04.2011 в 16:06.
Аватар вне форума Ответить с цитированием
Старый 30.04.2011, 16:05   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

и правильно не работает.
я Вам больше скажу.
Создайте папку с именем, например, "MyDoc.OLD"
и она определится как файл.

в файловой системе есть специальный атрибут (в Дельфи константа faDirectory).
поэтому, определить, папка или файл можно так
(взято из JEDI - файл JclFileUtils.pas ):
Код:
function IsDirectory(const FileName: string): Boolean;
var
  R: DWORD;
begin
  R := GetFileAttributes(PChar(FileName));
  Result := (R <> DWORD(-1)) and ((R and FILE_ATTRIBUTE_DIRECTORY) <> 0);
end;
пример использования:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
   if IsDirectory(edit1.Text)
   then Form1.Caption := 'Это папка'
   else if FileExists(edit1.Text)
          then Form1.Caption := 'Это файл'
          else Form1.Caption := 'Такого вообще нет!';
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi], запись и чтение изображения в файл своего расширения Игорь0766 Помощь студентам 1 31.01.2011 16:41
Название файла без РАСШИРЕНИЯ! Dionix Общие вопросы Delphi 5 10.02.2010 23:18
Как открыть для чтения и записи файл без расширения DeDoK Общие вопросы Delphi 4 11.11.2009 22:41
Файл расширения *.bat Катюшенька Помощь студентам 2 29.09.2009 16:44
запретить удалять файл определенного расширения anuignedysic Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.05.2009 11:30