Форум: "Основная";
Текущий архив: 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