VFS: check if a predicate exists before attempting to chain
DirectoryIterator: copy the path
CharacterSounds: fix directory based soundsets
char portraits: chain the name filters