前一篇文章中讲到如何删除指定文件夹下所有的指定文件,那么如何向指定文件夹添加文件呢,即向指定文件夹(包括所有的子文件夹)添加一些特定的文件,如添加网站广告或是说明等。
思路其实差不多,就是遍历所有文件夹,如果是文件夹则将特定文件拷贝至该文件夹下(使用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. 点击“复制文件”按钮开始复制,完成后会出现提示
https://files.cnblogs.com/alexis/CopyFiles(EXE).rar
注,需.net framework 2以上的环境才能运行本程序。先给exe文件,如果大家需要源代码的话,后面会提供下载。