Я пытаюсь заполнить список строк со всеми именами папок внутри каталога.Как получить имена подпапок в каталоге, которые также содержат точки в имени?
Ниже приводится выдержка, как я был в состоянии сделать это:
var
SL: TStringList;
SearchAttr: LongInt;
SR: TSearchRec;
begin
SL := TStringList.Create;
try
SearchAttr := (faDirectory);
if FindFirst(Directory + '\*.', SearchAttr, SR) = 0 then
begin
try
repeat
if (SR.Attr and faDirectory) <> 0 then
begin
if (SR.Name <> '.') and (SR.Name <> '..') then
begin
SL.Add(Directory + SR.Name);
end;
end;
until
FindNext(Sr) <> 0;
finally
FindClose(SR);
end;
end;
end;
// do something with string list folder names
finally
SL.Free;
end;
end;
Родительской папка, которую я обратившийся содержит 220 вложенных папок, но процедура добавляла только 216 имен папок. После некоторых сравнений и отладки я заметил, что имена 4-х папок, которые не были добавлены, содержали точки в именах.
Для тестирования я создал папку под названием "Test Folder" и внутри я добавил еще 9 новых папок с именами:
- папки 1
- Папка 2
- Папка 3
- Папка 4
- Папка 5
- Папка .6
- Папка 7
- FOLDER 8
- Папка 9
При использовании "Test Folder" в качестве родительского каталога, это только добавляет следующие подкаталоги:
- Папка 1
- Папка 2
- Папка 3
- Папка 4
- Папка 5
- Папка 7
- Папка 9
Я экспериментировал с SR.Name <> '.'
, SR.Name <> '..'
и SR.Name[1] <> '.'
и т.д., но безуспешно.
Как изменить код, чтобы разрешить имена папок с точками в имени и добавить их в свой список строк?
Благодаря
Спасибо, тайник, новичок в этом, цените его, по крайней мере, дайте повод, если вы чувствуете необходимость спускать вниз. – Craig
Я не понимаю нисходящего. Это хорошо написанный вопрос, отвечающий всем требованиям. –
@KenWhite спасибо, к счастью, я не слишком беспокоюсь о том, сколько у меня головок или вниз, моя главная цель использования этого сайта - учиться и расти как разработчик и помогать другим, когда это возможно.Я просто нахожу это довольно раздражающим, когда пользователи тайны берут на себя ответственность за то, что другие пользователи задают вопросы, даже не оставляя причин или ничего конструктивного. Если пользовательский вопрос плох, то downvoters должны хотя бы дать вескую причину, почему и, по крайней мере, дают возможность человеку редактировать там вопрос и т. Д., А не оставлять задуматься о том, что они сделали неправильно. – Craig