示例#1
0
        /// <summary>
        /// Вызов копировальщика, в соответствие с типом item
        /// </summary>
        /// <param name="items">список объектов для копирования</param>
        /// <param name="dest">каталог назначения</param>
        /// <param name="interval">интервал копирования</param>
        public void Copy(List <Item> items, string dest, int interval, bool isDeleteMode)
        {
            ICopier copier = null;

            foreach (var item in items)
            {
                if (!item.IsHandled)
                {
                    lock (_locker)
                    {
                        item.IsHandled = true;
                        if (item.IsDirectory)
                        {
                            copier = DirectoryRecursiveCopier.GetCopier();
                        }
                        else
                        {
                            copier = FileCopier.GetCopier();
                        }

                        copier.Copy(item.Name, Path.Combine(dest, Path.GetFileName(item.Name)), isDeleteMode);
                        Thread.Sleep(interval);
                    }
                }
            }
        }
示例#2
0
 /// <summary>
 /// Возвращает экземпляр копировальщика.
 /// </summary>
 /// <returns>экземпляр копировальщика</returns>
 public static DirectoryRecursiveCopier GetCopier()
 {
     if (_instance == null)
     {
         lock (_locker)
         {
             _instance = new DirectoryRecursiveCopier();
         }
     }
     return(_instance);
 }