Rationalise hidden file behaviour