前一篇文章中讲到如何删除指定文件夹下所有的指定文件,那么如何向指定文件夹添加文件呢,即向指定文件夹(包括所有的子文件夹)添加一些特定的文件,如添加网站广告或是说明等。
思路其实差不多,就是遍历所有文件夹,如果是文件夹则将特定文件拷贝至该文件夹下(使用File.Copy函数),如果是文件则跳过...
主要代码如下(注释已经很详细就不再解释代码了)
- /// <summary>
- /// 遍历指定路径下所有指定名的文件
- /// </summary>
- /// <param name="path">指定路径</param>
- /// <param name="ext">文件扩展名,不包含分隔符(.)</param>
- /// <returns>返回所有文件绝对路径</returns>
- private void ErgodicFile(BackgroundWorker worker, string path)
- {
- Thread.Sleep(1);
- FileSystemInfo[] _fsi = null;//存储目录下的文件信息
- try
- {
- m_dirInfo = new DirectoryInfo(path);//获取指定路径下的目录信息
- _fsi = m_dirInfo.GetFileSystemInfos();//获取指定路径下的文件信息
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- return;
- }
- FileInfo _fi;//文件信息
- try
- {
- for (int i = 0; i < _fsi.Length; i++)
- {
- if (!Directory.Exists(_fsi[i].FullName))
- {//是文件
- }
- else
- {//是目录,复制文件并继续遍历
- for (int j = 0; j < lbFileNames.Items.Count; j++)
- {
- File.Copy(lbFileNames.Items[j].ToString(), _fsi[i].FullName +"\\"+lbFileNames.Items[j].ToString().Substring(lbFileNames.Items[j].ToString().LastIndexOf('\\')),true);
- }
- ErgodicFile(worker, _fsi[i].FullName);
- Thread.Sleep(1);
- }
- Thread.Sleep(1);
- }
- Thread.Sleep(1);
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
下面来看看程序的UI及使用说明:
使用说明:
1. 点击“添加文件”按钮,选择要复制的文件,可以添加多个文件
2. 点击“浏览...”选择目标目录
3. 点击“复制文件”按钮开始复制,完成后会出现提示
http://alexis.blog.51cto.com/attachment/201105/2621421_1306312193.rar
注,需.net framework 2以上的环境才能运行本程序。先给exe文件,如果大家需要源代码的话,后面会提供下载。
附件:http://down.51cto.com/data/2358190
本文转自xshf12345 51CTO博客,原文链接:http://blog.51cto.com/alexis/573642,如需转载请自行联系原作者