Although it is possible to handle such objects correctly, a more Symbian C++-ish approach would be
RArray is both faster and smaller than CArrayFixFlat, and you can not forget to initialize it, because it works without initialization too. However Close is necessary, and it produces more readable and object-oriented code if the object closes/deletes its member variables itself.
class CFileList : public CBase
TFileName is actually TBuf<255> (or 256?), and it is capable of storing any valid filename which can occur in a Symbian device (while TBuf<200> might turn out to be short in extreme situations).
Because CFileList has become a C-object, it should be used via pointers, thus pointer arrays (CArrayPtrFix/Seg, or the faster-smaller RPointerArray) should be used to handle it:
Because pointer arrays "recognize" C-classes (in fact they recognize CBase - that is why we inherit from it), ResetAndDestroy will delete the CFileList objects (resulting in invocation of the destructor, thus Close-ing and freeing the contained array of TFileInfo)