private static ContentStorage.FileInformation fileInfoFromCursor(final Cursor c, final Uri docUri, final Uri parentDirUri, final Folder parentFolder) {
        final String documentId = c.getString(0);
        final String name = c.getString(1);
        final String mimeType = c.getString(2);
        final long lastMod = c.getLong(3);
        final long size = c.getLong(4);

        final boolean isDir = DocumentsContract.Document.MIME_TYPE_DIR.equals(mimeType);
        final Uri uri = docUri != null ? docUri :
                (parentDirUri != null ? DocumentsContract.buildDocumentUriUsingTree(parentDirUri, documentId) : null);

        return new ContentStorage.FileInformation(name, uri, parentFolder, isDir, isDir && parentFolder != null ? Folder.fromFolder(parentFolder, name) : null, mimeType, size, lastMod);
    }
retrieves a FileInformation object from the current cursor row retrieved by using {@link #queryDir(Uri, String[], Func1)} columns
main/src/main/java/cgeo/geocaching/storage/DocumentContentAccessor.java