It's all about the answers!

Ask a question

Delete a file using Java Plain API

Marc Bauer (111) | asked Jan 29 '18, 7:01 a.m.
edited Jan 22 '19, 1:56 p.m. by David Lafreniere (4.7k7)

How do I delete a file using Plain Java API?
I am able to get the files IVersionableHandle, but I don't know how to delete it.
(I want to remove a former checked in file from a stream.)

One answer

permanent link
David Lafreniere (4.7k7) | answered Jan 22 '19, 1:56 p.m.
ITeamRepository repo = getRepo();
IWorkspaceHandle workspaceHandle = getWorkspace();
IVersionableHandle fileToDelete = getVersionable();
IChangeSetHandle changeSet = getChangeSet(); // Change set to check into
IWorkspaceManager wm = ScmPlatform.getWorkspaceManager(repo);
IWorkspaceConnection wc = wm.getWorkspaceConnection(workspaceHandle, monitor);

Collection ops = new ArrayList();
ops.add(wc.configurationOpFactory().delete(fileToDelete ));
IUpdateReport report = wc.commit(Collections.singletonList(changeSet ), Collections.singletonList(ops), monitor);

Gidi Gal commented Mar 31 '19, 11:18 a.m.

Is there a public API for deleting file\folder from sandbox without committing the local change to change-set ?

Shashikant Padur commented Apr 01 '19, 12:01 a.m.
Did you mean undo the unresolved file changes? If so,
ILocalChangeManager lcm = FileSystemCore.getSharingManager().getLocalChangeManager();

You have to iterate over the changes to find your change:
ILocalChange[] localChanges = lscm.getPendingChanges(...);

Then call undo changes only for those changes you have to undo:
lscm.undoChanges(localChanges, ...);

Gidi Gal commented Apr 01 '19, 6:30 a.m.
Thanks for your reply, Shashikant.
No, the file in sandbox may be in sync with the stream. Up until now I used to delete the file and then I fetched the local changes with ILocalChangeManager in order to check-in them or check-in and deliver. returns sometimes false on failure with no documentation on the relevant error. I'm looking for a public RTC SDK client API to replace it.

Your answer

Register or to post your answer.