Delphi-Quellcode:
begin
listbox2.Clear;
s:=Socket.ReceiveText;
repeat;
delete(s,1,pos('\',s)+2);
delete(s,1,pos(':',s)+2);
i:=1;
wort:='';
if pos('<',s) < 7
then begin
delete(s,1,19);
index:=pos(':',s);
while i<=index-16
do begin
wort:=wort+s[i];
i:=i+1;
end;
// Memo1.Lines.Add('<DIR> '+wort);
Listbox2.Items.Add('<DIR> '+wort);
end
else begin
delete(s,1,19);
index:=pos(':',s);
while i<=index-16
do begin
wort:=wort+s[i];
i:=i+1;
end;
// Memo1.Lines.Add(' '+wort);
ListBox2.Items.Add(' '+wort);
end;
until s='';
end;
Ich arbeite mit DOS man kann in nem Edit Feld den Pfad eingeben und bekommt dann den Ordnerinhalt in einem String übermittelt. Ich hab das so gemacht das erstmal der ganze Mist mit Volumennummer und so weiter rausgelöscht wird...
Danach löscht er weiter zeichen... Das Datum wann die Datei das letzte mal verändert wurde is dann auch weg. Dann wird geguckt ob ein < von <DIR> in den nächsten 7 stellen steht wenn ja isses ein Verzeichnis, wenn nich eine Datei. Der Rest dürfte selbst erklärend sein. Das einzigste Problem ist das die letzte Datei oder der letzte Ordner nich gefunden wird, weil ich mich an den Datumsangaben orientiere.... Aber dann kommt anstatt ner Datei/Ordner einfach fünf mal untereinander das selbe zeichen... So hoffe ich hab euch nich zu verwirrt
Edit: Kann sein das ich den Code bissel falsch bzw. zu ungenau wiedergegeben habe *ascheaufhaupt*