cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Share your feedback on the Document Scanning Experience in the Dropbox App right here.

Discuss Dropbox Developer & API

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Move files and Folders

Move files and Folders

developersSave
Helpful | Level 6
Go to solution

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!

14 Replies 14

developersSave
Helpful | Level 6
Go to solution

Hi @Здравко 

that's my method for folders, but it doesn't work (to and from path are both id:etcetc):

public static void moveFolder(SuiteConfiguration suiteConfiguration,

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

DbxClientV2 dropboxClient = getV2Client(suiteConfiguration);

List<RelocationPath> entries = new ArrayList<RelocationPath>();

 

entries.add(new RelocationPath(fromPath, toPath));

RelocationBatchV2Launch moveBatchJob = dropboxClient.files().moveBatchV2(entries);

 

RelocationBatchV2JobStatus moveBatchCheck = null;

 

while (moveBatchCheck == null || moveBatchCheck.isInProgress()) {

// check this occasionally until it's done

moveBatchCheck = dropboxClient.files().moveBatchCheckV2(moveBatchJob.getAsyncJobIdValue());

Thread.sleep(10000);

System.out.println(moveBatchCheck);

}

//MoveV2Builder withAllowSharedFolder = dropboxClient.files().moveV2Builder("id:TMSaeghsn0AAAAAAAACV2Q/ios.png", "id:TMSaeghsn0AAAAAAAACV2w/ios.png").withAllowOwnershipTransfer(true).withAllowSharedFolder(true).withAutorename(true);

//RelocationResult result = withAllowSharedFolder.start();

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

// return result.getMetadata().getPathDisplay();

}

 

 

Thank you!

Здравко
Legendary | Level 20
Go to solution

@developersSave wrote:

...

that's my method for folders, but it doesn't work (to and from path are both id:etcetc):

...



@Здравкоwrote:

... 'id' can be use as path in all cases where existing object is expected to be there. ...

When you have non existing object (the target path), you can combine id and trailing part of the path. For instance if targetId is folder where you want to move your file to and filename.ext is the taget name for the file in that folder, then 'toPath' can look something like $targetId/filename.ext (combining id and path). ...


@developersSave, Read more careful what I have described already. Where you got the target ID from??? First of all there is no such file/folder yet! Next, the ID is the same, only name and/or path changes, so cannot be different source and target IDs. Be more careful!

By the way, it's meaningless a batch operation for single move.

developersSave
Helpful | Level 6
Go to solution

hi @Здравко ,
I get my folders and files id from database, I saved them after upload.

If I need to move a sub-folder under my-app general folder, what have I to do?
Example:

Applications/My-App/folder-1/folder-2

I've to move "folder-2" under "My-App" folder, but I don't have any id for this one.

Thank you!

Здравко
Legendary | Level 20
Go to solution

@developersSave wrote:

...

I've to move "folder-2" under "My-App" folder, but I don't have any id for this one.
...


@developersSave, You don't need id for your app namespace root folder. It's just empty. Pass an empty string instead of real ID. :winking_face: The concatenation can proceed without change.

developersSave
Helpful | Level 6
Go to solution

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

Need more support?
Who's talking

Top contributors to this post

  • User avatar
    developersSave Helpful | Level 6
  • User avatar
    Здравко Legendary | Level 20
What do Dropbox user levels mean?