示例#1
0
        // copy given file from source to target directory if appropriate
        public void SynchronizeFile(string file)
        {
            if (SourceAccessor.FileExists(file))
            {
                if (CopyFile(file))
                {
#if DEBUG
                    Console.WriteLine("copying from {1} to {2}: {0}", file, SourceAccessor, TargetAccessor);
#endif
                    using (var sourceStream = SourceAccessor.GetFileContents(file)) {
                        DateTime writeTime  = SourceAccessor.GetLastWriteTime(file);
                        int      attributes = SourceAccessor.GetFileAttributes(file);
                        TargetAccessor.WriteFile(file, sourceStream, writeTime, attributes);
                    }
                    synchronizedFiles.Add(file);
                }
            }
            else if (DeleteAdditionalFiles && TargetAccessor.FileExists(file))
            {
#if DEBUG
                Console.WriteLine("deleting {0} from {1}", file, TargetAccessor);
#endif
                TargetAccessor.DeleteFile(file);

                synchronizedFiles.Add(file);
            }
        }
示例#2
0
 // delete all files that are in the target, but not source directory
 void DeleteFilesFromTarget(string baseDir)
 {
     // no directory? no files to delete
     if (!TargetAccessor.DirectoryExists(baseDir))
     {
         return;
     }
     foreach (string filename in TargetAccessor.GetFiles(baseDir))
     {
         SynchronizeFile(filename);
     }
     foreach (string subDirectory in TargetAccessor.GetDirectories(baseDir))
     {
         DeleteFilesFromTarget(subDirectory);
     }
 }