More functional file dialog