Форум: "Основная";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизКак найти папку по маске? Найти похожие ветки
← →
lipskiy (2003-04-15 01:52) [0]Если в имени файла при определении существования (FileExists) звездочки и вопросики воспринимаются как маска, то в имени папки (DirectoryExists) это не работает почему-то.
Как можно определить, существет ли папка, если я точно знаю путь, за исключением последнего нижнего уровня, имя которого мне известно лишь частично. Применение FindFirst и FindNext крайне нежелательно, так как папок очень много (может достигать десятка тысяч), и процесс сканирования займет много времени. Необходимо определить быстро. Есть такая возможность?
← →
Palladin (2003-04-15 01:59) [1]глупость...
если тебя интересует существует папка отвечающая заданой маске тебе совсем не обязательно пробегать всем папкам
достаточно лишь один раз вызвать FindFirst....
← →
Palladin (2003-04-15 02:05) [2]хм...
прошу прощенья
не один раз, а пока не встретишь директорию проверяя аттрибуты ручками...
← →
А123 (2003-04-15 02:36) [3]Чё-то очень маловероятно, что найти папку без "сканирования" возможно.
← →
lipskiy (2003-04-15 09:19) [4]черт, это я затупил, прошу прощения, поздновато было. Конечно же, FindFirst все и решает, поскольку он то маску понимает :) И зачем атрибуты ручками проверять? Ведь в параметрах FindFirst я могу задать fadirectory, разве этого недостаточно? У меня вроде работает, может я что-то все таки некорректно сделал:
if FindFirst(Path + "????_??_????_" + Sample,faDirectory,srec) = 0 then continue;
где Path - известный путь к папкам для поиска, Sample - известный фрагмент имени папки.
← →
Palladin (2003-04-15 09:41) [5]нет ты не прав...
по поводу директорий надо ручками проверять...
← →
Smithson (2003-04-15 10:09) [6]faDirectory - это файл у которого этот атрибут или есть, или нет.
Отсутсвие атрибута - файл, у которого его нет.
← →
Sheriff (2003-04-15 10:32) [7]а так:
if GetFileAttributes("c:\borland\delphi5")=FILE_ATTRIBUTE_DIRECTORY then showmessage("ok");
← →
han_malign (2003-04-15 10:56) [8]Еще раз повторю сказанное выше по подробней:
> FindFirst(Path + "????_??_????_" + Sample,faDirectory, srec)
The Attr parameter specifies the special files to include in addition to all normal files.
так что до первого ( srec.FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY)<>0 (для Windows)
З.Ы. Как показывает практика, обычно, FindFirstFile(а именно он и используется в FindFirs под must die) сначала находит как раз каталоги, но я периодически дефрагментируюсь Norton SpeedDisk, с флажком "папки в начало", так что на это забиваться не стоит. Сканирование довольно шустрое (а как, по вашему, explorer вам каталоги показывает), так что не болезненно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c