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

Вниз

Список файлов и папок.   Найти похожие ветки 

 
Nikfel ©   (2007-09-27 13:48) [0]

Подскажите пожалуйста. Как получить список папок и вывести в memo1, и получит список файлов и вывести в memo2. Мне только нужно получить список файлов или папок. Желательно бы найти самый быстрый вариант. Заранее спасибо.


 
Kolan ©   (2007-09-27 13:51) [1]

Пользовайся:


 
Kolan ©   (2007-09-27 13:51) [2]

procedure TPluginLoader.ScanDirectory(Directory: string;
 ScanSubFolders: Boolean; Strings: TStrings; Extension: string;
 FileName: string; RecursionCount: Integer);
var
 CurrentFile: TSearchRec;
begin
 Directory := IncludeTrailingPathDelimiter(Directory);
 if Assigned(Strings) and DirectoryExists(Directory) then
 begin
   try
     if FindFirst(Directory + "*.*", faAnyFile, CurrentFile) = 0 then
     begin
       repeat
         if (CurrentFile.Name <> ".") and (CurrentFile.Name <> "&#133") then
         begin
           if ((CurrentFile.Attr and faDirectory) <> 0) and ScanSubFolders then
             ScanDirectory(Directory+CurrentFile.Name, ScanSubFolders, Strings,
               Extension, FileName, RecursionCount + 1);
            if (Extension = "") or (ExtractFileExt(CurrentFile.Name) = Extension) then
              if (FileName = "") or (FileName = CurrentFile.Name) then
               Strings.Add(Directory+CurrentFile.Name)
         end;
       until FindNext(CurrentFile) <> 0;
     end;
   finally
     FindClose(CurrentFile);
   end;
 end;
end;


 
Nikfel ©   (2007-09-27 13:55) [3]

Спасибо. Проверю.


 
{RASkov} ©   (2007-09-27 15:06) [4]

> [0] Nikfel ©   (27.09.07 13:48)
> Как получить список папок и вывести в memo1, и получит список файлов и вывести в memo2
> Желательно бы найти самый быстрый вариант

А обязательно Memo нужны? Например ListBox"ы - не подойдут?


 
Kolan ©   (2007-09-27 15:11) [5]

> Спасибо. Проверю.

Пользоваться так:

var
 Strings: TStrings;
begin
 Strings : TStringList.Create;
 try  
   ScanDirectory("C:\", False, Strings, "", "", 0);
   Memo1.Lines.Text := Strings.Text;
 finally
   Strings.Free;
 end;
end;


 
{RASkov} ©   (2007-09-27 15:13) [6]


> [5] Kolan ©   (27.09.07 15:11)

А почему не так:
begin
 ScanDirectory("C:\", False, Memo1.Lines, "", "", 0);
end;

? :)


 
Джо ©   (2007-09-27 15:14) [7]

> [5] Kolan ©   (27.09.07 15:11)
> > Спасибо. Проверю.
>
> Пользоваться так:
>
> var
> Strings: TStrings;
> begin
> Strings : TStringList.Create;
> try  
>   ScanDirectory("C:\", False, Strings, "", "", 0);
>   Memo1.Lines.Text := Strings.Text;
> finally
>   Strings.Free;
> end;
> end;


А разве не так?
ScanDirectory("C:\", False, Memo1.Strings, "", "", 0);
;)


 
Джо ©   (2007-09-27 15:15) [8]

> [7] Джо ©   (27.09.07 15:14)

> А разве не так?
> ScanDirectory("C:\", False, Memo1.Strings, "", "", 0);
> ;)

Т.е., Lines, конечно.


 
Джо ©   (2007-09-27 15:15) [9]

> [6] {RASkov} ©   (27.09.07 15:13)

О, не один я шибко умный :)


 
Reindeer Moss Eater ©   (2007-09-27 15:29) [10]

SendMessage(ListBox1.Handle,
               LB_DIR,
               DDL_ARCHIVE +
               DDL_DIRECTORY +
               DDL_DRIVES +
               DDL_EXCLUSIVE +
               DDL_HIDDEN +
               DDL_READONLY +
               DDL_READWRITE +
               DDL_SYSTEM,
               Integer(PChar("C:\*.*"))
               );


 
Kolan ©   (2007-09-27 15:35) [11]

> А разве не так?

Хм, и так можно&#133 Почему же я был уверен что он ругнется что-то типа Left side cannot be assigend&#133 странно&#133


 
{RASkov} ©   (2007-09-27 15:54) [12]

> [10] Reindeer Moss Eater ©   (27.09.07 15:29)

А вдруг ему Мемо критично... :)
Ладно... я ему тоже приготовил нечто такое:
procedure GetFileDir(LsFile, LsDir: TCustomListBox; const APath: String);
begin
 LsFile.Perform(LB_DIR, 0, LPARAM(PChar(APath)));
 LsDir.Perform(LB_DIR, DDL_EXCLUSIVE or DDL_DIRECTORY, LPARAM(PChar(APath)));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 GetFileDir(ListBox1, ListBox2, "C:\Temp\*.*");
end;


В справке по DlgDirList есть инфа по параметрам DDL_xxx.....


 
Джо ©   (2007-09-27 15:57) [13]

> [11] Kolan ©   (27.09.07 15:35)
> > А разве не так?
>
> Хм, и так можно… Почему же я был уверен что он ругнется
> что-то типа Left side cannot be assigend… странно…

А где там assignment? :)


 
{RASkov} ©   (2007-09-27 16:03) [14]

> [11] Kolan ©   (27.09.07 15:35)
> странно…

Ничего странного нет.... так как
procedure TPluginLoader.ScanDirectory(....: Boolean; Strings: TStrings; Extension: string.....)
всего лишь указатель....
А смотрим
TCustomMemo = class(TCustomEdit)
.....
property Lines: TStrings read FLines write SetLines;


> что-то типа Left side cannot be assigend…

Это немного не из этой оперы....


 
Kolan ©   (2007-09-27 16:11) [15]

> А где там assignment? :)

Ну я знаю&#133

А если бы было так:
property Lines: TStrings read GetLines write SetLines;

Ругалось бы?


 
{RASkov} ©   (2007-09-27 16:20) [16]

> [15] Kolan ©   (27.09.07 16:11)
> GetLines write SetLines;
>
> Ругалось бы?

А сам как думаешь? :)
Адрес метода от адреса "данных" отличаешь?


 
Kolan ©   (2007-09-27 16:21) [17]

> Адрес метода от адреса &laquo;данных&raquo; отличаешь?

Ну вот, вот у меня и запало что так не получится :)


 
Джо ©   (2007-09-27 17:54) [18]

2 Kolan ©
Ты ведь просто передаешь ссылку на объект. Ничего никуда не присваивается. :)


 
Джо ©   (2007-09-27 17:55) [19]

И абсолютно без разницы, где этот объект находится, в локальном var или возвращается методом-аксессором.


 
Kolan ©   (2007-09-27 18:02) [20]

> А сам как думаешь? :)


> И абсолютно без разницы

Короче проверил:
property Strings: TStrings read GetStrings write SetStrings;
Работает&#133

Хм&#133, странно, откруда тогда у меня эта паранойа.



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

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

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1190381870
mike_zav
2007-09-21 17:37
2007.10.21
FreeAndNil


4-1176956104
roughneck
2007-04-19 08:15
2007.10.21
Подсказки


15-1190382611
ElectriC
2007-09-21 17:50
2007.10.21
Point n Grafik


2-1190647395
Ильдар
2007-09-24 19:23
2007.10.21
Срочно


15-1190384723
мастерПакость
2007-09-21 18:25
2007.10.21
вопрос по HTML





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский