【问题标题】:Copying only files in subfolders to destination仅将子文件夹中的文件复制到目标
【发布时间】:2014-04-14 06:36:04
【问题描述】:

我的文件夹结构如下:

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)。我怎么能这样????

【问题讨论】:

  • 谷歌搜索,但我只能看到与目录和子目录相关的文件复制,而不是所有 dll。

标签: c#


【解决方案1】:

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

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))));

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

【讨论】:

  • 这就是我要找的。我不是开发人员,所以也许我不确定。谢谢。
  • 这对我有帮助...谢谢
【解决方案2】:

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

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

/r 遍历树。
~nx 重构没有路径的文件名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    相关资源
    最近更新 更多