Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > глупый вопрос о копировании директория


Автор: Cree 11.2.2006, 18:33
Может кто нибудь подскажет простой и красивый способ скопировать дерикторий со всеми вложенными файлами и каталогами.

Автор: _hunter 13.2.2006, 12:49
рекурсивно обходим директорию, создавая при этом список файлов ( с относительными путями ) потом по этому списку копируем файлы ( создавая по мере необходимости папки )

Автор: Ch0bits 13.2.2006, 13:29
Cree
smile
Код

using System;
using System.Text;
using System.IO;

namespace CopyDirectory
{
    class Program
    {
        static void Main(string[] args)
        {
            CopyDirectory(@"d:\temp", @"c:\123123\666\6", true);
        }

        /// <summary>
        /// Копирование директории
        /// </summary>
        /// <param name="Source">Исходная директория</param>
        /// <param name="Dest">Конечная директория</param>
        /// <param name="CanOverwrite">Флаг возможности перезаписи имеющихся файлов</param>
        private static void CopyDirectory(String Source, String Dest, bool CanOverwrite)
        {
            DirectoryInfo DI = new DirectoryInfo(Source);
            FileInfo[] Files = DI.GetFiles();
            Directory.CreateDirectory(Dest);
            foreach (FileInfo fi in Files)
                File.Copy(fi.FullName, Dest + "\\" + fi.Name, CanOverwrite);
            DirectoryInfo[] Directories = DI.GetDirectories();
            foreach (DirectoryInfo di in Directories)
                CopyDirectory(di.FullName, Dest+"\\"+di.Name, CanOverwrite);
        }
    }
}


Автор: Cree 15.2.2006, 01:59
Рекурсивно я тож сделал, а вот подругому я так понимаю что никак? Просто если подумать как то нелогично сделан Directory класс. MoveTo есть а копировать нет, странно.... Но за примерчик всеравно спасибо. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)