protected override async Task ExecuteInternal() { var renamedEventArgs = FileSystemEventArgs .OfType <RenamedEventArgs>() .ToList(); foreach (var renamedEventArg in renamedEventArgs) { var oldRelativePath = renamedEventArg.OldFullPath.Replace(AccountObject.Path, "") .Trim(Path.DirectorySeparatorChar); var newRelativePath = renamedEventArg.FullPath.Replace(AccountObject.Path, "") .Trim(Path.DirectorySeparatorChar); if (AccountObject.IgnoredFolders.Any(y => oldRelativePath.StartsWith(y, StringComparison.InvariantCultureIgnoreCase))) { return; } var file = await FileRepository.FindAsync(AccountObject.Token, oldRelativePath); if (file == null) { //something wrong return; } file.Name = Path.GetFileName(newRelativePath); file.Status = FileStatus.LocallyRenamed; if (!file.IsFolder) { file.LastWrite = File.GetLastWriteTime(Path.Combine(AccountObject.Path, newRelativePath)).Ticks; } } await FileRepository.SaveAsync(); }