@Override
  public List<? extends IFile> listFiles() {
    List<IFile> files = new ArrayList<IFile>();
    for (IFileMetadata fm : _backingFileSystem.listFiles(_path)) {
      if (fm.isFile()) {
        files.add(new PhysicalFileImpl(_path.join(fm.name()), _backingFileSystem));
      }
    }

    return files;
  }
  @Override
  public List<? extends IDirectory> listDirs() {
    List<IDirectory> dirs = new ArrayList<IDirectory>();
    for (IFileMetadata fm : _backingFileSystem.listFiles(_path)) {
      if (fm.isDir()) {
        dirs.add(new PhysicalDirectoryImpl(_path.join(fm.name()), _backingFileSystem));
      }
    }

    return dirs;
  }