private async void getStartedSynchronizationAsync(DropboxApi api, string syncFolder, int indexCursor) { updateState(false); string nameSyncFolder = "/" + syncFolder.Split('\\').Last(); string cur = Properties.Settings.Default.cursorsFolders[indexCursor] /*Properties.Settings.Default.cursor*/; Delta delta; if (cur != "") { delta = await api.GetDeltaAsync(cur, nameSyncFolder); } else { delta = await api.GetDeltaAsync(nameSyncFolder); } List <string> newFiles = new List <string>(); //updateExistingFiles(selectedFolder, newFiles ,delta); if (delta.entries.Count() > 0) { delta = await api.GetDeltaAsync(cur, nameSyncFolder /*"/Синхронизируемая папка"*/); cur = delta.cursor; //Properties.Settings.Default.cursor = cur; Properties.Settings.Default.cursorsFolders[indexCursor] = cur; Properties.Settings.Default.Save(); string[] Directories = syncFolder.Split('\\'); foreach (var file in delta.entries) { if (file.Item2 != null) { if (file.Item2.is_dir == false) { string nameFile = Directories.Last(); nameFile = file.Item2.path.Substring(nameFile.Length + 1).Replace('/', '\\'); var folder = await client.downloadFileAsync(api, file.Item2.path.TrimStart('/')); watcher.EnableRaisingEvents = false; folder.Save(syncFolder + nameFile); watcher.EnableRaisingEvents = true; newFiles.Add(syncFolder + nameFile); } else { string nameFolder = Directories.Last(); nameFolder = file.Item2.path.Substring(nameFolder.Length + 1).Replace('/', '\\'); Directory.CreateDirectory(syncFolder + nameFolder); } } else { string nameFile = Directories.Last(); nameFile = file.Item1.Substring(nameFile.Length + 1).Replace('/', '\\'); if (!isFolder(file.Item1.ToString())) { if (System.IO.File.Exists(syncFolder + nameFile)) { watcher.EnableRaisingEvents = false; try { System.IO.File.Delete(syncFolder + nameFile); } catch (Exception e) { } watcher.EnableRaisingEvents = true; } } else { if (System.IO.Directory.Exists(syncFolder + nameFile)) { watcher.EnableRaisingEvents = false; try { System.IO.Directory.Delete(syncFolder + nameFile); } catch (Exception e) { } watcher.EnableRaisingEvents = true; } } } } } uploadNewFiles(syncFolder, newFiles, indexCursor); }