Копирование папок - C#
Формулировка задачи:
Всем доброго времени суток.
Мне необходимо копировать папку с файлами в другую папку для этого я использую:Но при выполнении выдает ошибку в доступе.
void perebor_updates(string begin_dir, string end_dir)
{
DirectoryInfo dir_inf = new DirectoryInfo(begin_dir);
foreach (DirectoryInfo dir in dir_inf.GetDirectories())
{
if (Directory.Exists(end_dir + "\\" + dir.Name) != true)
{
Directory.CreateDirectory(end_dir + "\\" + dir.Name);
}
perebor_updates(dir.FullName, end_dir + "\\" + dir.Name);
}
foreach (string file in Directory.GetFiles(begin_dir))
{
string filik = file.Substring(file.LastIndexOf('\\'), file.Length - file.LastIndexOf('\\'));
File.Copy(file, end_dir + "\\" + filik, true);
}
}
пробовал запускать с админ правами таже картина
Решение задачи: «Копирование папок»
textual
Листинг программы
using System;
using System.IO;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
CopyDirectory(@"E:\Новая папка\ChartingAutomation", @"E:\Новая папка\destFolder");
Console.ReadLine();
}
private static void CopyDirectory(string sourceDirectoryPath, string destinationDirectoryPath)
{
try
{
var sourceDirectoryInfo = new DirectoryInfo(sourceDirectoryPath);
var destinationDirectoryInfo = new DirectoryInfo(Path.Combine(destinationDirectoryPath, sourceDirectoryInfo.Name));
if (!destinationDirectoryInfo.Exists)
{
destinationDirectoryInfo.Create();
}
CopyDirectoryRecursive(sourceDirectoryPath, destinationDirectoryInfo.FullName);
}
catch (Exception)
{
}
}
private static void CopyDirectoryRecursive(string sourceDirectoryPath, string destinationDirectoryPath)
{
var sourceDirectoryInfo = new DirectoryInfo(sourceDirectoryPath);
var destinationDirectoryInfo = new DirectoryInfo(destinationDirectoryPath);
if (!sourceDirectoryInfo.Exists) return;
try
{
if (!destinationDirectoryInfo.Exists) destinationDirectoryInfo.Create();
foreach (var fileInfo in sourceDirectoryInfo.GetFiles())
{
try
{
File.Copy(fileInfo.FullName, Path.Combine(destinationDirectoryInfo.FullName, fileInfo.Name));
}
catch (Exception)
{
//Обработка ошибок при копировании файла.
}
}
foreach (var directoryInfo in sourceDirectoryInfo.GetDirectories())
{
CopyDirectoryRecursive(directoryInfo.FullName, Path.Combine(destinationDirectoryInfo.FullName, directoryInfo.Name));
}
}
catch (Exception)
{
}
}
}
}