We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.

Forum Discussion

developersSave's avatar
developersSave
Helpful | Level 6
2 years ago

Move files and Folders

Hi everyone, 

I've a question:
I need to move files and folders using dropbox API in my Java project. Do you have some code examples? I can't find them online and I don't know if it's possibile do that.

Thank you!

  • developersSave's avatar
    developersSave
    2 years ago

    Hi Здравко ,

    I solved everything in this way (all Paths are made with a DropBox id):

     

    public static String moveFile(SuiteConfiguration suiteConfiguration,

    String fromPath,String toPath) throws RelocationErrorException, DbxException {

    DbxClientV2 dropboxClient = getV2Client(suiteConfiguration);

     "id:TMSaeghsn0AAAAAAAACV2w/ios.png").withAllowOwnershipTransfer(true).withAllowSharedFolder(true).withAutorename(true);

    RelocationResult result = dropboxClient.files().moveV2(fromPath, toPath);

    return result.getMetadata().getPathDisplay();

    }

     

    public static void moveFolder(SuiteConfiguration suiteConfiguration,

    String fromPath,String toPath) throws RelocationErrorException, DbxException, InterruptedException {

    DbxClientV2 dropboxClient = getV2Client(suiteConfiguration);

    MoveV2Builder withAllowSharedFolder = dropboxClient.files().moveV2Builder(fromPath,toPath).withAllowOwnershipTransfer(true).withAllowSharedFolder(true).withAutorename(false);

    RelocationResult result = withAllowSharedFolder.start();

    }

     

     

    Thank you for your help

    • developersSave's avatar
      developersSave
      Helpful | Level 6

      Hi  Здравко 

       

      That's my code! I'm trying to get my new folder path from it dropbox id using getFolderPath() method, but it doesn't work. 
      After that, I use moveFile() method.

       

      public static String getFolderPath(SuiteConfiguration suiteConfiguration, String id) throws DbxException {

      DbxClientV2 dropboxClient = getV2Move(suiteConfiguration);

      String folderPath = "";

      try {

      Metadata metadata = dropboxClient.files().getMetadata(id);

      if (metadata instanceof FolderMetadata) {

      folderPath = ((FolderMetadata) metadata).getPathDisplay();

      }

      } catch (DbxException e) {

      e.printStackTrace();

      }

       

      return folderPath;

      }

      public static FileMetadata moveFile(SuiteConfiguration suiteConfiguration,

      String fromPath,String toPath) throws RelocationErrorException, DbxException {

      DbxClientV2 dropboxClient = getV2Move(suiteConfiguration);

      RelocationResult result = dropboxClient.files().moveV2(fromPath, toPath);

      return (FileMetadata) result.getMetadata();

      }

      • Здравко's avatar
        Здравко
        Legendary | Level 20

        developersSave wrote:

        ... I'm trying to get my new folder path from it dropbox id using getFolderPath() method, ...


        developersSave, You don't need to get existing file/folder path from id. The id may be used on path's place instead. So, your 'getFolderPath' is meaningless here. Even more - what about files:


        developersSave wrote:

        ...

        try {

        Metadata metadata = dropboxClient.files().getMetadata(id);

        if (metadata instanceof FolderMetadata) {

        folderPath = ((FolderMetadata) metadata).getPathDisplay();

        }

        } catch (DbxException e) {

        e.printStackTrace();

        }

        ...


        'FolderMetadata' Ok, but what about 'FileMetadata'? A valid object will leads to empty file name; of course incorrect when you pass it to 'moveFile'!

        By the way, what kind of error your're receiving? There has to be a clear enough description. What do you exactly mean with "it doesn't work"? 🧐