Genau genommen ist 'leer' <> 'nicht vorhanden'. Und wenn man das unterscheiden will (was vernünftig ist), dann ist das ein Problem => TStringList <> Hashmap/Dictionary.
Dann ist die TStringList vielleicht nicht die richtige Implementierung für deine Hashmap bzw. dein Directory? Wie schon erwähnt, gibt es dafür mittlerweile geeignetere Klassen.