I have done similer kind of project few months before, get whole paths from dropbox and the latest changes. here is my code I have used. there is your answer, actually more than you want, because the code gives you latest changes of the folder
ex:-deleted images
in this code I am getting all the urls of images contained in all folders, modify it as you want
imageLoadingAsyncTask = new AsyncTask<Void, Void, String[]>() {
        ArrayList<String> loadingPaths = new ArrayList<String>();
        ArrayList<String> deletedPathList = new ArrayList<String>();
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
        @Override
        protected String[] doInBackground(Void... params) {
            Log.i("start background running", "do in background...");
            Log.d(TAG, "ddd1");
            try {
                DeltaPage<Entry> deltaPage;
                // initializing cursor
                App.initializeCursor(mContext);
                do {
                    deltaPage = mApi.delta(App.getDropBoxCursor(mContext));
                    App.updateCursor(mContext, deltaPage.cursor);
                    if (!deltaPage.reset) {
                        for (DropboxAPI.DeltaEntry<DropboxAPI.Entry> entry : deltaPage.entries) {
                            if (entry.metadata != null) {
                                // if (!entry.metadata.isDeleted) {
                                // Log.d(TAG,
                                // String.format(
                                // "entry.metadata (%d) : %s",
                                // (entry.metadata.contents == null ? 0
                                // : entry.metadata.contents
                                // .size()),
                                // entry.metadata.path));
                                if (!(entry.metadata.isDir)
                                        && entry.metadata.thumbExists) {
                                    loadingPaths.add(entry.metadata.path
                                            .toLowerCase());
                                    Log.i("entry path",
                                            "entry path="
                                                    + entry.metadata.path
                                                            .toLowerCase());
                                }
                            } else {
                                deletedPathList.add(entry.lcPath
                                        .toLowerCase());
                                // filesToRemove.add(entry.lcPath);
                            }
                        }
                    } else {
                        // onDeltaLoadingListener.onReset();
                    }
                } while (deltaPage.hasMore);
            } catch (DropboxIOException e) {
                e.printStackTrace();
                i_activity_dropbox_photo_grid.putExtra("exception", "drop");
            } catch (DropboxException e) {
                e.printStackTrace();
            }
            // ---------------end checking dropbox chenges
            // ////////////////////////// _list2 =
            _list2 = new DropBoxImagePathDataAccess(mContext)
                    .getAppPathList();
            // //// }
            if (deletedPathList.size() > 0) {
                int x = 0, y = 0;
                for (String path : deletedPathList) {
                    // ////////////////////////////////////////////////////////////////////////////////////////////////
                    // path = path.replaceAll("['.]", "");
                    if (_list2.size() > 0 && _list2.contains(path)) {
                        _list2.remove(path);
                        new DropBoxImagePathDataAccess(mContext)
                                .removePath(path);
                        x = 1;
                    }
                    if (loadingPaths.size() > 0
                            && loadingPaths.contains(path)) {
                        loadingPaths.remove(path);
                    }
                    // if the user delete a whole folder
                    // following code will check folder name is contains in
                    // the paths
                    // if contains then whole part is removed, since all the
                    // folder contents also should be remove
                    for (String path1 : _list2) {
                        if (_list2.get(y).contains(path.toLowerCase())) {
                            _list2.remove(y);
                            new DropBoxImagePathDataAccess(mContext)
                                    .removePath(path1);
                        }
                        y++;
                    }
                }
            }
            // remove duplicate paths
            for (String path : _list2) {
                // /////////////////////////////////////////////////////////////////////////////////path
                // = path.replaceAll("[',,]", "");
                if (loadingPaths.contains(path)) {
                    loadingPaths.remove(path);
                }
            }
            int i = 0;
            int size = 0;
            size = _list2.size() + loadingPaths.size();
            mStrings = new String[size];
            // add old paths to mString array
            for (String path : _list2) {
                if (i < size) {
                    mStrings[i] = path;
                    i++;
                }
            }
            // add new paths to mStrings array
            ArrayList<String> updatePaths = new ArrayList<String>();
            if (loadingPaths.size() > 0) {
                for (String newpath : loadingPaths) {
                    if (!_list2.contains(newpath)) {
                        updatePaths.add(newpath);
                        mStrings[i] = newpath;
                        i++;
                    }
                }
            }
            // update shared preference
            if (updatePaths.size() > 0) {
                new DropBoxImagePathDataAccess(mContext)
                        .createPathList(updatePaths);
            }
            Log.i("mString size", "mString size=" + mStrings.length);
            return mStrings;
        }
        @Override
        protected void onPostExecute(String[] result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            finalImageList = result;
            int i1 = 0;
            for (String path : finalImageList) {
                Log.i("final Image list", "final image list" + " i= " + i1
                        + " path= " + path);
            }
            App.DROP_BOX_ALL_PHOTO_LOCATED = true;
            i_activity_dropbox_photo_grid.putExtra("finalList", finalImageList);
            startActivity(i_activity_dropbox_photo_grid);
            overridePendingTransition(R.anim.activity_from_right,
                    R.anim.activity_to_left);
            finish();
        }
    };