Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка или нет? DirectoryExists, странная реакция функции 
V
    Опции темы
BpIstorick
  Дата 16.7.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



в своей программе решил сделать проверку директории, но просто понять не могу теперь, как работает функция DirectoryExists

в процедуру по константе передаю APout - имя папки типа 'd:\111\123\' где 123- имя нужной папки а d:\111 просто путь к нужному каталогу

если
Код
  s:=APOut;
  delete (s, p.Y+1, length(s));//здесь я просто удаляю имя нужной папки, чтобы проверить каталог выше
  b:=DirectoryExists (s);        //делаю проверку каталога
b - типа Боолеан

так вот, функция DirectoryExists всегда возвращает мне false, каталог существует!!!

если делаю вызов вручную указывая каталог
Код
  s:='d:\111\';
  b:=DirectoryExists (s);
то все путем, работает

в чем загвоздка?

M
z-END
пользуйся кнопкой "код" для выделения кода
 

Это сообщение отредактировал(а) z-END - 16.7.2006, 19:55
PM MAIL   Вверх
volvo877
Дата 16.7.2006, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 14
Всего: 116



BpIstorick, давай ты будешь приводить фрагменты программ, в которых понятно, ЧЕМУ равно значение той или иной переменной? Откуда, например, видно, чему равно p.Y + 1? Может, ты удаляешь вообще все, что есть в строке... 
PM MAIL   Вверх
Alexeis
Дата 16.7.2006, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Может вместо  'd:\111\123\' передовать  'd:\111\123'?

Добавлено @ 20:28 
Кстати тем более хелп дает пример
Код

uses FileCtrl;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not DirectoryExists('c:\temp') then
...................
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
RemaGe
Дата 16.7.2006, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 14.4.2006

Репутация: нет
Всего: нет



У меня работает и 
Код

DirectoryExists ('c:\temp');  

и
Код

DirectoryExists ('c:\temp\');  

так что проблемма почти наверняка в значении p.Y+1.
Как она вычисляется не знаю, поэтому просто сделай:
Код

 s:=APOut;    
Showmessage(s);
 delete (s, p.Y+1, length(s));
Showmessage(s);
 b:=DirectoryExists (s);  

и проверь чего находится в переменной s до delete, и чего после.
 smile  
PM MAIL WWW   Вверх
BpIstorick
Дата 16.7.2006, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



volvo877, 
alexeis1, 

Спасибо за содействие, ошибка найдена и все работает!

Проверено DirectoryExists будет работать в обоих случаях: и когда 
Код

DirectoryExists('c:\temp')


и когда 

Код

DirectoryExists('c:\temp\')


Проблема была в том что я просто подставлял неверное имя папки smile просьба особо не ругать ;) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.