【发布时间】:2013-02-27 10:31:22
【问题描述】:
现在我的 msbuild 脚本中有一个删除文件夹的任务
<RemoveDir Directories="$(Bin)"/>
但我宁愿删除文件夹的 contents,但保留该文件夹(以防有人在 Windows 资源管理器中打开该文件夹)。我该怎么做?
【问题讨论】:
标签: msbuild
现在我的 msbuild 脚本中有一个删除文件夹的任务
<RemoveDir Directories="$(Bin)"/>
但我宁愿删除文件夹的 contents,但保留该文件夹(以防有人在 Windows 资源管理器中打开该文件夹)。我该怎么做?
【问题讨论】:
标签: msbuild
这将删除所有文件和子文件夹:
<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 extension pack然后使用
<MSBuild.ExtensionPack.FileSystem.Folder TaskAction="RemoveContent" Path="$(Bin)" />
【讨论】: