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

本文关键字:文件 复制 目标 文件夹 | 更新日期: 2023-09-27 17:58:07

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

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

我只想将程序集(.dlls)复制到目标C:''dest*.dll,而不想将子文件夹复制到目标(即:我的文件夹dest应包含test1.dll、test2.dll、test3.dll和test4.dll)。如何继续????

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

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

Directory.GetFiles方法(字符串、字符串、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))));

在应对之前,您必须确保目标目录存在。此外,如果文件已经存在于目标目录中,则会引发异常。

使用FOR命令可以轻松完成此操作。类似这样的东西:

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

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