Пример #1
0
        public void Sync(string sourceDirectory, string targetDirectory)
        {
            var root  = new DirectoryInfo(sourceDirectory).Name;
            var files = Directory.EnumerateFiles(sourceDirectory, "*.*", SearchOption.AllDirectories).ToList();

            for (int i = 0; i < files.Count; i++)
            {
                var file         = files[i];
                var remoteFolder = Path.Combine(targetDirectory, new FileInfo(file).DirectoryName.Substring(file.IndexOf(root) + root.Length + 1)).Replace(@"\", "/");
                if (!iPhone.CreateDirectory(remoteFolder))
                {
                    MessageBox.Show(string.Format("Create directory failed: {0}", remoteFolder));
                }

                string remoteFile = Path.Combine(remoteFolder, Path.GetFileName(file)).Replace(@"\", "/");
                ProgressChanged.RaiseEvent(this, new ProgressChangedEventArgs {
                    NewProgress = (int)(((double)i / (double)files.Count) * 100.0), CurrentFile = remoteFile
                });
                iPhone.CopyFile(file, remoteFile);
            }

            ProgressChanged.RaiseEvent(this, new ProgressChangedEventArgs {
                NewProgress = 100
            });
            SyncCompleted.RaiseEvent(this, new EventArgs());
        }