private bool RenameFolder(string directory, string newFilename, IFolder remoteFolder)
{
SleepWhileSuspended();
string oldPathname = Path.Combine(directory, remoteFolder.Name);
string newPathname = Path.Combine(directory, newFilename);
try
{
Logger.InfoFormat("Renaming: {0} -> {1}", oldPathname, newPathname);
IDictionary<string, object> properties = new Dictionary<string, object>();
properties[PropertyIds.Name] = newFilename;
IFolder updatedFolder = (IFolder)remoteFolder.UpdateProperties(properties);
// Update the path in the database...
database.MoveFolder(SyncItemFactory.CreateFromLocalPath(oldPathname, true, repoInfo, database),
SyncItemFactory.CreateFromLocalPath(newPathname, true, repoInfo, database)); // database query
Logger.InfoFormat("Renamed folder: {0} -> {1}", oldPathname, newPathname);
return true;
}
catch (Exception e)
{
ProcessRecoverableException(String.Format("Could not rename folder: {0} -> {1}", oldPathname, newPathname), e);
return false;
}
}