2013-05-31 64 views
-1

我在C:\Source文件夾中有一堆文本文件。 我想要將所有文件複製到MyData文件夾的整個C:\ drive。 請讓我知道在C#中的方法,我想這將是一個遞歸的。將文件複製到C#中的驅動器中的特定文件夾

我知道如何將文件從一個位置複製到另一個位置。 我想要的方法來獲取所有的文件夾/目錄名稱「MyData」跨C :. 而文件夾「MyData」位於多個位置。所以我想將這些文件複製到所有的地方。

+4

請出示目前的努力和代碼 –

+1

@Frederick羅斯 - 在OP聽起來並不像他知道從哪裏開始,沒有IMO所需的代碼問那種問題。 – killthrush

+0

@Dev Dhingra - 如果你想知道你的問題爲什麼被低估,那可能是因爲它「沒有顯示研究工作」。其他人之前已經問過(並回答過)這個問題,並且很容易找到我使用谷歌提供的鏈接。下一次要考慮的事情。 – 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

你可以在System.IO命名空間使用FileSystemWatcher類的。

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);    
    } 
相關問題