Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

Найти все папки   Найти похожие ветки 

 
PC ©   (2004-11-19 02:09) [0]

Вот мне надо найти все папки по указанному адресу (типа там C:\temp\Some_Thing). Как? Заранее спасибо.


 
Devel ©   (2004-11-19 02:14) [1]

FindFirst,FindNext


 
PC ©   (2004-11-19 02:16) [2]

А разве так можно для папок? Я так ищю файлы. А как тогда задавать маску?


 
Тестировщица ©   (2004-11-19 04:41) [3]

Маску - так же, как и для файлов.(C:\temp\Some_Thing\*.*)
F1 FindFirst, посмотри пример и обрати внимание на faDirectory


 
***SPIDER***   (2004-11-19 07:00) [4]

Попробуй так:

procedure TForm1.FindAllDir(Dir:String);
Var SR:TSearchRec;
   FindRes:Integer;
begin
Dir:=IncludeTrailingBackSlash(Dir);
FindRes:=FindFirst(Dir+"*.*",faAnyFile,SR);
While FindRes=0 do
  begin
     if ((SR.Attr and faDirectory)=faDirectory) and
     ((SR.Name=".")or(SR.Name="..")) then
     begin
       FindRes:=FindNext(SR);
       Continue;
     end;

     if ((SR.Attr and faDirectory)=faDirectory) then  
     begin
        ...
        {здесь запоминаем Dir в какой-то список (глобальный)}
        ...
        FindAllDir(Dir+SR.Name);
        FindRes:=FindNext(SR);
        Continue;
     end;
     FindRes:=FindNext(SR);
  end;
FindClose(SR);
end;


 
Fay ©   (2004-11-19 08:33) [5]

2 ***SPIDER***   (19.11.04 07:00) [4]
Попробуй так:
procedure TForm1.FindAllDir(List : TStrings; Dir : string);
var
 fd : WIN32_FIND_DATAA;
 fh : DWORD;
begin
 Dir := IncludeTrailingBackSlash(Dir);
 fh := FindFirstFile(PChar(Dir + "*.*"), fd);
 if fh <> INVALID_HANDLE_VALUE then
   try
     repeat
       if (fd.cFileName[0] <> ".") and ((fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0) then
         begin
           List.Add(Dir + fd.cFileName);
           FindAllDir(List, Dir + fd.cFileName)
         end;
     until not FindNextFile(fh, fd);
   finally
     Windows.FindClose(fh);
   end;
end;


8)


 
PC ©   (2004-11-19 18:28) [6]

Всем спасибо, заработало. Я вчера после прочтения поста № 2 попробовал сделать сам, тока у меня были какие-то левые имена папок - ".". Что это? Да, и еще: есть-ли какая-нить функция для изменения расширения файла? Типа-там str := "bla.bmp"; Превратить str в "bla.jpg"? Я сделал через "найти точку и отрезать, а потом прибавить".


 
begin...end ©   (2004-11-19 18:34) [7]


> [6] PC ©   (19.11.04 18:28)


> тока у меня были какие-то левые имена папок - ".". Что это?

"." - текущий каталог;
".." - родительский каталог.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.034 c
4-1098255997
Pop
2004-10-20 11:06
2004.12.05
TGraphic рисуется в серой палитре при рисовании на канве принтера


14-1100464788
SergP
2004-11-14 23:39
2004.12.05
Задачи для программистов. :-))


14-1100731463
KilkennyCat
2004-11-18 01:44
2004.12.05
И еще немного о форумах. Какими они должны быть?


3-1099901798
Victor!
2004-11-08 11:16
2004.12.05
Импорт Paradox в SQL Server


14-1100797528
Sanek_Metaller
2004-11-18 20:05
2004.12.05
Задачка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский