2013-05-31 2 views
-1

У меня есть набор текстовых файлов в папке C:\Source. Я хочу скопировать все файлы в папку MyData по адресу C:\ drive. Пожалуйста, дайте мне знать подход на C#, я думаю, что он будет рекурсивным.Скопируйте файл в определенную папку на диске в C#

Я знаю, как скопировать файл из одного места в другое. Я хочу получить подход, чтобы получить все папки/Каталоги с именем «MyData» через C :. И папка «MyData» находится в нескольких местах. Поэтому я хочу скопировать файлы во все места.

+4

Пожалуйста, покажите ваши текущие усилия и код –

+1

@Frederick Рот - ОР не звучит, как он знает, с чего начать, не требуется код ИМО не задавать такой вопрос. – killthrush

+0

@Dev Dhingra - в случае, если вам интересно, почему ваш вопрос был приостановлен, вероятно, потому, что он «не показывает исследовательских усилий». Другие задавали (и отвечали) этот вопрос раньше, и было очень легко найти ссылку, которую я предоставил с помощью Google. Что-то подумать в следующий раз. – killthrush

ответ

0

Если вы действительно не знаете, с чего начать, я предлагаю взглянуть на this question, на который было запрошено некоторое время. Есть много примеров и ссылок, чтобы вы начали.

2

Этот ответ берется непосредственно из MSDN здесь: http://msdn.microsoft.com/en-us/library/bb762914.aspx

using System; 
using System.IO; 

class DirectoryCopyExample 
{ 
    static void Main() 
    { 
     // Copy from the current directory, include subdirectories. 
     DirectoryCopy(".", @".\temp", true); 
    } 

private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs) 
{ 
    // Get the subdirectories for the specified directory. 
    DirectoryInfo dir = new DirectoryInfo(sourceDirName); 
    DirectoryInfo[] dirs = dir.GetDirectories(); 

    if (!dir.Exists) 
    { 
     throw new DirectoryNotFoundException(
      "Source directory does not exist or could not be found: " 
      + sourceDirName); 
    } 

    // If the destination directory doesn't exist, create it. 
    if (!Directory.Exists(destDirName)) 
    { 
     Directory.CreateDirectory(destDirName); 
    } 

    // Get the files in the directory and copy them to the new location. 
    FileInfo[] files = dir.GetFiles(); 
    foreach (FileInfo file in files) 
    { 
     string temppath = Path.Combine(destDirName, file.Name); 
     file.CopyTo(temppath, false); 
    } 

    // If copying subdirectories, copy them and their contents to new location. 
    if (copySubDirs) 
    { 
     foreach (DirectoryInfo subdir in dirs) 
     { 
      string temppath = Path.Combine(destDirName, subdir.Name); 
      DirectoryCopy(subdir.FullName, temppath, copySubDirs); 
     } 
    } 
} 

}

1

Вы можете использовать класс FileSystemWatcher в System.IO пространство имен.

public void FolderWatcher() 
    { 
     FileSystemWatcher Watcher = new System.IO.FileSystemWatcher(); 
     Watcher.Path = @"C:\Source"; 
     Watcher.Filter="*.txt"; 
     Watcher.NotifyFilter = NotifyFilters.LastAccess | 
        NotifyFilters.LastWrite | 
        NotifyFilters.FileName | 
        NotifyFilters.DirectoryName; 
     Watcher.Created += new FileSystemEventHandler(Watcher_Created); 
     Watcher.EnableRaisingEvents = true; 

    } 

    void Watcher_Created(object sender, FileSystemEventArgs e) 
    {    
     File.Copy(e.FullPath,"C:\\MyData",true);    
    } 
Смежные вопросы