仅将子文件夹中的文件复制到目标

时间:2014-04-14 06:36:05

标签: c#

我有一个文件夹结构如下:

C:\test\test1.dll
C:\test\subtest\test2.dll
C:\test\subtest\test3.dll
C:\test\supertest\test4.dll

我只想将程序集(.dll)而不是子文件夹复制到目标C:\ dest * .dll(即;我的文件夹dest应该包含test1.dll,test2.dll,test3.dll和test4。 DLL)。我怎么能继续这个????

2 个答案:

答案 0 :(得分:2)

不确定我是否误解了您的问题,但您可以使用

带搜索选项Directory.GetFiles Method (String, String, SearchOption)

AllDirectories并过滤“* .dll”

您可以尝试类似

的内容
List<string> files = new List<string>(Directory.GetFiles(@"C:\test", "*.dll", SearchOption.AllDirectories));
files.ForEach(f => File.Copy(f, Path.Combine(@"C:\dest", Path.GetFileName(f))));

在处理之前,您必须确保目标目录存在。此外,如果文件已存在于目标目录中,则会抛出异常。

答案 1 :(得分:0)

您可以使用FOR命令轻松完成此操作。像这样:

for /r %f in (*.dll) do copy %~nxf c:\dest

/r走在树上 ~nx重建没有路径的文件名。