2013-09-13 9 views
0

Я работаю над консольным приложением C# .net в приложении. У меня есть две папки 1)D:\Working Projects\Alticore\AssetXML\LIS, 2)D:\Working Projects\Alticore\AssetXMLProcessed.Как скопировать папку из папки в другую папку?

Теперь я хочу, чтобы скопировать только вложенную папку (т.е. LIS) из D:\Working Projects\Alticore\AssetXML\LIS to D:\Working Projects\Alticore\AssetXMLProcessed.

То есть xaclty нравится эта "D:\Working Projects\Alticore\AssetXMLProcessed/LIS".

Любое решение этой проблемы Буду признателен.

+0

И вы хотите сделать это на C#? Вопрос неясен –

+0

Да, я работаю над C# .net – Indra

+1

Перемещение или копирование. Выбери один. –

ответ

0

В Windows XP, это будет следующим образом:

move "c:\documents and settings\%USERNAME%\desktop\TZClock" "C:\documents and settings\%USERNAME%\Start Menu\Programs\TZClock" 

В Windows 7 это следующее (хотя я не в состоянии проверить это прямо сейчас):

move "c:\users\%USERNAME%\desktop\TZClock" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\TZClock" 

вы можете выполнить этот процесс или другое, чтобы создать новый файл, скопируйте все данные.

+0

Нет Я хочу скопировать только подпапку в другую папку. – Indra

+0

Несомненно, вопрос запрашивает код в C# –

+0

HI all ... Я хочу создать папку с тем же именем в исходном каталоге и скопировать связанные файлы в эту папку. – Indra

0

Это должно сделать работу

public static void Copy(String srcPath, String destPath) 
{ 
    DirectoryInfo srcDirectory = new DirectoryInfo(srcPath); 
    if (!srcDirectory.Exists) return; 

    // Creates LIS directory 
    destPath = Path.Combine(Path.Combine(destPath, srcDirectory.Name)); 
    Directory.CreateDirectory(destPath); 

    // Creates all sub directories from srcPath to your destPath 
    foreach (String dirPath in Directory.GetDirectories(srcPath, "*", SearchOption.AllDirectories)) 
     Directory.CreateDirectory(dirPath.Replace(srcPath, destPath)); 

    // Copies all files from all sub directories from srcPath to your destPath 
    foreach (String copyPath in Directory.GetFiles(srcPath, "*.*", SearchOption.AllDirectories)) 
     File.Copy(copyPath, copyPath.Replace(srcPath, destPath), true); 
} 

Использование:

Copy(@"D:\Working Projects\Alticore\AssetXML\LIS", @"D:\Working Projects\Alticore\AssetXMLProcessed") 

Если вы не хотите, чтобы скопировать вложенных папок или его файлы удалить не требуется Еогеасп. Кстати, это будет отменять скопированные файлы.

+0

Aldis ... Я хочу скопировать только структуру папок и скопировать их в пункт назначения. – Indra

+0

Так что удаление последнего foreach должно выполнить эту работу, или я что-то пропустил? – antrasisacc

0

Существует еще один вариант, что вы можете сделать, это есть метод
File.Copy (ЦСИ, Dest) в пространстве имен System.IO вы также можете пойти с этим.

+0

Это копирует файлы, а не каталоги –

+0

ОК, тогда вам нужно использовать функцию mkdir и затем скопировать ее. –

+0

Я знаю, как это сделать. Я указываю, что ваш ответ неправильный. –

Смежные вопросы