Ich versuche, eine Stringlist mit allen Ordnernamen in einem Verzeichnis zu füllen.Wie erhalten Sie Unterordnernamen eines Verzeichnisses, die auch Punkte im Namen enthalten?
Im Folgenden ein Auszug aus wie ich war in der Lage, dies zu tun:
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;
Der übergeordnete Ordner, die ich zugreifenden 220 Vorhefte war enthalten aber die Routine nur wurde das Hinzufügen 216 Ordnernamen. Nach einigen Vergleichen und Debugging habe ich bemerkt, dass die 4 Ordnernamen, die nicht hinzugefügt wurden, Punkte in den Namen enthalten.
I Um zu testen, einen Ordner namens "Test Folder" erstellt und innerhalb I 9 weitere neue Ordner hinzugefügt genannt:
- Ordner 1
- Folder 2
- Ordner 3
- Ordner 4
- Ordner 5
- Ordner .6
- Ordner 7
- FOLDER 8
- Ordner 9
Wenn "Test Folder" als das übergeordnete Verzeichnis verwenden, es fügt nur die folgenden Unterverzeichnisse:
- Ordner 1
- Ordner 2
- Ordner 3
- Ordner 4
- Ordner 5
- Ordner 7
- Ordner 9
Ich habe mit SR.Name <> '.'
, SR.Name <> '..'
und SR.Name[1] <> '.'
usw. ohne Erfolg zu experimentieren.
Wie kann ich den Code ändern, um Ordnernamen mit Punkten im Namen zuzulassen und sie zu meiner Stringliste hinzuzufügen?
Dank
Dank Mystery Downvoter schätzen es, zumindest geben Sie einen Grund, wenn Sie das Gefühl haben, Downvote. – Craig
Ich verstehe den Downvote nicht. Dies ist eine gut geschriebene Frage, die alle Anforderungen erfüllt. –
@KenWhite Danke, zum Glück bin ich nicht allzu besorgt darüber, wie viele Upvotes oder Downvotes ich bekomme, mein Hauptzweck dieser Seite ist es, als Entwickler zu lernen und zu wachsen und anderen zu helfen, wenn es möglich ist.Ich finde es einfach nervig, wenn Mystery-User es auf sich nehmen, andere User-Fragen zu verwerfen, ohne auch nur einen Grund oder etwas Konstruktives zu hinterlassen. Wenn eine Benutzerfrage schlecht ist, sollten Downvoters zumindest einen stichhaltigen Grund dafür geben und zumindest eine Gelegenheit für die Person bieten, ihre Frage usw. zu bearbeiten, anstatt darüber nachdenken zu müssen, was sie falsch gemacht haben. – Craig