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