Abstract file access