前一篇文章中讲到如何删除指定文件夹下所有的指定文件,那么如何向指定文件夹添加文件呢,即向指定文件夹(包括所有的子文件夹)添加一些特定的文件,如添加网站广告或是说明等。

思路其实差不多,就是遍历所有文件夹,如果是文件夹则将特定文件拷贝至该文件夹下(使用File.Copy函数),如果是文件则跳过...

主要代码如下(注释已经很详细就不再解释代码了)

 
  
  1. /// <summary> 
  2.         /// 遍历指定路径下所有指定名的文件  
  3.         /// </summary> 
  4.         /// <param name="path">指定路径</param> 
  5.         /// <param name="ext">文件扩展名,不包含分隔符(.)</param> 
  6.         /// <returns>返回所有文件绝对路径</returns> 
  7.         private void ErgodicFile(BackgroundWorker worker, string path)  
  8.         {  
  9.             Thread.Sleep(1);  
  10.             FileSystemInfo[] _fsi = null;//存储目录下的文件信息  
  11.             try  
  12.             {  
  13.                 m_dirInfo = new DirectoryInfo(path);//获取指定路径下的目录信息  
  14.                 _fsi = m_dirInfo.GetFileSystemInfos();//获取指定路径下的文件信息  
  15.             }  
  16.             catch (Exception ex)  
  17.             {  
  18.                 Console.WriteLine(ex.Message);  
  19.                 return;  
  20.             }  
  21.  
  22.             FileInfo _fi;//文件信息  
  23.             try  
  24.             {  
  25.                 for (int i = 0; i < _fsi.Length; i++)  
  26.                 {  
  27.                     if (!Directory.Exists(_fsi[i].FullName))  
  28.                     {//是文件  
  29.                           
  30.                     }  
  31.                     else  
  32.                     {//是目录,复制文件并继续遍历  
  33.                         for (int j = 0; j < lbFileNames.Items.Count; j++)  
  34.                         {  
  35.                             File.Copy(lbFileNames.Items[j].ToString(), _fsi[i].FullName +"\\"+lbFileNames.Items[j].ToString().Substring(lbFileNames.Items[j].ToString().LastIndexOf('\\')),true);  
  36.                               
  37.                         }  
  38.  
  39.                         ErgodicFile(worker, _fsi[i].FullName);  
  40.  
  41.                         Thread.Sleep(1);  
  42.                     }  
  43.                     Thread.Sleep(1);  
  44.                 }  
  45.                 Thread.Sleep(1);  
  46.             }  
  47.             catch (Exception ex)  
  48.             {  
  49.                 MessageBox.Show(ex.Message);  
  50.             }  
  51.         } 

下面来看看程序的UI及使用说明:

 

使用说明:

1. 点击“添加文件”按钮,选择要复制的文件,可以添加多个文件

2. 点击“浏览...”选择目标目录

3. 点击“复制文件”按钮开始复制,完成后会出现提示

http://alexis.blog.51cto.com/attachment/201105/2621421_1306312193.rar

注,需.net framework 2以上的环境才能运行本程序。先给exe文件,如果大家需要源代码的话,后面会提供下载。