private bool MoveFolder(string oldDirectory, string newDirectory, IFolder oldRemoteFolder, IFolder newRemoteFolder, IFolder remoteFolder)
{
SleepWhileSuspended();
string oldPathname = Path.Combine(oldDirectory, remoteFolder.Name);
string newPathname = Path.Combine(newDirectory, remoteFolder.Name);
try
{
Logger.InfoFormat("Moving: {0} -> {1}", oldPathname, newPathname);
IFolder updatedFolder = (IFolder)remoteFolder.Move(oldRemoteFolder, newRemoteFolder);
// Update the path in the database...
database.MoveFolder(SyncItemFactory.CreateFromLocalPath(oldPathname, true, repoInfo, database),
SyncItemFactory.CreateFromLocalPath(newPathname, true, repoInfo, database)); // database query
Logger.InfoFormat("Moved folder: {0} -> {1}", oldPathname, newPathname);
return true;
}
catch (Exception e)
{
ProcessRecoverableException(String.Format("Could not move folder: {0} -> {1}", oldPathname, newPathname), e);
return false;
}
}