This code is rarely used and may not even be correct according to the standard. Also this de-clutters the `File` class.