MSBUILD - 如何删除文件夹的内容,但没有文件夹本身?(Msbuild - how to d

2019-07-20 14:44发布

现在在我的MSBuild脚本是删除文件夹任务

<RemoveDir Directories="$(Bin)"/>

不过我宁愿删除该文件夹的内容 ,但保留文件夹(如果有人在Windows资源管理器中打开的文件夹)。 我怎样才能做到这一点?

Answer 1:

下载并安装MSBuild扩展包 ,然后使用

<MSBuild.ExtensionPack.FileSystem.Folder TaskAction="RemoveContent" Path="$(Bin)" />


Answer 2:

这将删除所有文件和子文件夹:

    <Target Name="CleanFolder">

    <PropertyGroup>
      <TargetFolder>c:\clean</TargetFolder>
    </PropertyGroup>

    <ItemGroup>
      <FilesToClean Include="$(TargetFolder)\**\*"/>
      <Directories Include="$([System.IO.Directory]::GetDirectories('$(TargetFolder)', '*', System.IO.SearchOption.AllDirectories))"
                   Exclude="$(TargetFolder)"/>
    </ItemGroup>

    <Delete Files="@(FilesToClean)" ContinueOnError="true"/>
    <RemoveDir Directories="@(Directories)" />
  </Target>

这也将是不错滴用openFiles散工具打开的连接:

openfiles /disconnect /ID *


文章来源: Msbuild - how to delete folder contents but not folder itself?
标签: msbuild