我有一个文件夹结构如下:
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)。我怎么能继续这个????
答案 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
重建没有路径的文件名。